Docker
https://gyazo.com/fcb112a37e65144a382d05b3799ea0e8
ライフサイクル
1. Docker hubからdocker imageを取得する
docker pull
$ docker pull <image_name>
<image_name>:取得したいdocker image
2. docker imageからDocker containerを作る
Docker container:仮想マシンに該当するもの
docker create
$ docker create -it <image_name>
options
-i, --interactive Keep STDIN open even if not attached
-t, --tty Allocate a pseudo-TTY
interactive shellとして動かしたいときに-itを使う
でもこの設定ってdocker execでもやれたようなtakker.icon
docker create時に設定するとなにか変わるのかな?
--name:container nameを付ける
後からdocker container renameでも変えられる
-p(--publish list): port fowardを設定する
例:-p 80:80
localhost:80にきたアクセスを、Docker containerの80番ポートに転送する
-v(--volume list): local directoryをDocker containerのvolumeとしてmountする
local directoryと同期できるようになる
例:-v:$(pwd):/var/www/html
current directoryをDocker containerの/var/www/htmlにmountする
このあたりのoptionsはdocker runでも使えるみたい?
3. Docker containerを起動する
docker start
$ docker start <container_id>
Docker container IDはdocker create時に表示される
docker container lsで後から見ることもできる
-iを入れると、そのままcontainerの中に入れる
$ docker start -ia <container_id>
-a, --attach Attach STDOUT/STDERR and forward signals
-i, --interactive Attach container's STDIN
4. dockerの中に入る
docker execでDocker containerに新規processを立ち上げて、その中に入る
$ docker exec -it <container_id> bash
exitで外に出る
docker attachでも中に入れるが、新規processを立ち上げないため、containerから抜けるとcontainer自体がstopしてしまう
5. Docker containerを停止する
docker stop
$ docker stop <container_id>
6. Docker containerを削除する
$ docker rm <container_id>
1~3までをdocker runで一括実行できる
-d:バックグラウンドで実行させる
docker container ls
$ docker container ls
起動中のDocker containerを列挙する
docker container ls -a
$ docker container ls -a
起動していないものも含めた全てのDocker containerを列挙する
docker image ls
$ docker image ls
docker pullしてローカルにあるdocker imageを列挙する
Docker image
例:rudy:2.5
:の後ろをタグと呼ぶ
versionを指定できる
省略すると:latestになる
rudy=rudy:latest
マンガでわかるDockerのPHPサーバーを試す
$ docker run -d -p 80:80 --name sample-php -v $(pwd):/var/www/html php:7.0-apache
2025-04-06 14:53:24 動いたtakker.icon
docker container stopすると、localhostにつながらなくなる
local directoryに/docker/sample.phpを作ったので、docker stop sample-phpしたあともファイルが残っている
Docker Compose
docker-compose.ymlに書いた手順通りに、複数のDocker containerを立ち上げる
/docker/compose
docker compose up -dで起動
$ docker compose up -d
Docker Compose の利用 | Docker ドキュメント
References
マンガでわかるDocker
dockerのCLI上のhelp
#2025-04-06 13:53:42