Dockerをinstall
Docker
ライフサイクル
1. Docker hubからdocker imageを取得する
$ docker pull <image_name>
<image_name>
:取得したいdocker image 2. docker imageからDocker containerを作る
Docker container:仮想マシンに該当するもの
$ 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でもやれたような
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 <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 <container_id>
6. Docker containerを削除する
$ docker rm <container_id>
1~3までをdocker runで一括実行できる
-d
:バックグラウンドで実行させる$ docker container ls
起動中のDocker containerを列挙する
$ docker container ls -a
起動していないものも含めた全てのDocker containerを列挙する
$ docker image ls
docker pullしてローカルにある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
docker container stop
すると、localhostにつながらなくなる local directoryに/docker/sample.phpを作ったので、
docker stop sample-php
したあともファイルが残っている docker-compose.ymlに書いた手順通りに、複数のDocker containerを立ち上げる
$ docker compose up -d
References
dockerのCLI上のhelp
#2025-04-06 13:53:42