Windows で Docker をはじめる
重い腰を上げて Vagrant
から乗り換えに着手することにする。
まだ Virtual Box
+ Vagrant
の環境を捨てられないのと、 Homeエディションでも Docker を利用したいので、 Hyper-V
の使用は行わない。
よって、 Docker Toolbox
を利用することになる。
Docker Toolbox
は仮想環境として Virtual Box
を利用する。
1. インストール
Docker Toolbox overview | Docker Documentation からダウンロードする。
ダウンロードした DockerToolbox.exe
を実行して、インストールする。
Virtual Box
は既にインストール済なのでチェックを外してインストール対象から外した。
2. Chocolateyによるインストール
管理者権限のコンソールで
choco install -y docker-toolbox docker-kitematic
|
3. 初期設定
Docker Quickstart Terminal
を起動する。
自動的に初期設定が始まり、Virtual Box
と 仮想マシンが起動する。
ターミナルに鯨マークが表示されれば成功。
Virtual Box
上では以下のようになっている。
4. 動作確認
$ docker run hello-world
以下のように出力されれば成功。
Unable to find image 'hello-world:latest' locally
latest: Pulling from library\hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https:\\hub.docker.com\
For more examples and ideas, visit:
https:\\docs.docker.com\get-started\
5. CentOSをコンテナで動かしてみる
centos
イメージの取得
$ docker pull centos
Using default tag: latest
latest: Pulling from library\centos
256b176beaff: Pull complete
Digest: sha256:6f6d986d425aeabdc3a02cb61c02abb2e78e57357e92417d6d58332856024faf
Status: Downloaded newer image for centos:latest
取得済イメージ一覧表示
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 4ab4c602aa5e 2 weeks ago 1.84kB
centos latest 5182e96772bf 7 weeks ago 200MB
コンテナを起動する
起動コマンドは docker run <イメージ名> <コンテナで起動するコマンド>
$ docker run centos echo "hello centos"
hello centos
コンテナを起動した直後に echo
コマンドを実行してコンテナは終了する。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
コンテナで対話的に作業をする場合は -it
オプションをつけて、コンテナに接続する。
$ docker run -it centos bash
[root@80fdde4b23e4 /]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
コンテナが終了せずに起動中のままとなり、コンテナのbashプロンプトなっている。
別途dockerのターミナルを開いて ps
コマンドを実行すると、コンテナが起動中なのが確認出来る。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
80fdde4b23e4 centos "bash" 5 minutes ago Up 5 minutes
jolly_yalow
コンテナを停止する。
$ docker stop 90dc6cf4489a
90dc6cf4489a
コンテナへの接続は切れる。
停止したコンテナを start
コマンドで再開する。
$ docker start 90dc6cf4489a
90dc6cf4489a
iwase@DP-050:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90dc6cf4489a centos "bash" 8 minutes ago Up 8 seconds angry_almeida
開始しているコンテナにアタッチして再び操作できるようにする。
$ docker attach 90dc6cf4489a
コンテナを終了するには stop
コマンドでコンテナを停止して、 rm
コマンドで削除する。
$ docker stop 90dc6cf4489a
90dc6cf4489a
$ docker rm 90dc6cf4489a
90dc6cf4489a
コンテナを終了すると start
コマンドでコンテナの再開が出来なくなる。
$ docker start 90dc6cf4489a
Error response from daemon: No such container: 90dc6cf4489a
Error: failed to start containers: 90dc6cf4489a