参考にさせて頂いたページ
今日の環境
- Windows10 Home
- WSL + Ubuntu 16.04
はじめに
2018年09月08日現在で、WSLではコンテナ内に入れなくて解決できないので諦めてvagrantのcentos7.3にdocker-ceをインストール試しています。
前提
以下の記事でWindows 10 Home + WSL + Ubuntu 16.04 でdockerのHello Worldまでやってみました。
ローカルにダウンロード済みのdocker image一覧を確認する
以下のコマンドで確認できます。
$ docker images
以下のように表示されました。
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest 2cb0d9787c4d 8 weeks ago 1.85 kB
コンテナ一覧を確認する(停止中のコンテナも含めて確認)
docker ps -a
コンテナがあれば、以下のような感じで一覧が表示されます。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01b4a46364c9 hello-world "/hello" 41 minutes ago Exited (0) 41 minutes ago kickass_austin 5304de8d9ebb hello-world "/hello" About an hour ago Exited (0) About an hour ago romantic_pasteur 0b51cc48a7a8 hello-world "/hello" About an hour ago Exited (0) About an hour ago elastic_dijkstra
Dockerコンテナを削除する
以下のコマンドで削除できます。
docker rm <コンテナ名>
さきほど一覧を表示したうちの、NAMESがコンテナ名ですのでこの例では以下の通りです。
docker rm kickass_austin
もう一度一覧を確認すると削除されているはずです。
hello-worldのイメージを元に作成されたコンテナがあれば全て削除していきます。
docker imageを削除する
以下のコマンドで削除できます。
ただし、停止中のコンテナなどで使用されているイメージは「強制削除」を指定しないと削除できません。
# docker rmi <Dockerイメージ名> (今回でいえば「hello-world」) または # docker rmi <IMAGE ID> (今回でいえば「f2a91732366c」)
hello-worldのイメージはもういらないので削除します。
さきほど一覧を表示した、hello-worldを削除します。
今回の例では以下の通りです。
docker rmi hello-world
このとき停止中のコンテナでhello-worldイメージが使用されている場合は削除できず、以下のようなエラーが表示されます。
Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force) - container 0b51cc48a7a8 is using its referenced image 2cb0d9787c4d
または
Error response from daemon: conflict: unable to delete 2cb0d9787c4d (must be forced) - image is being used by stopped container 5304de8d9ebb
Nginxイメージを使ってコンテナを起動し停止までやる
イメージをダウンロード
nginxのDockerイメージをダウンロードします。
ダウンロードが終わったらenterを押す必要があるかもしれません。
docker pull nginx
コンテナの作成と起動
ダウンロードしたnginxのイメージで、コンテナを作成し起動します。
docker run -d --name nginx-container -p 8181:80 nginx
以下のURLにブラウザでアクセスしてみます。
以下のようなnginxのページが確認できたら上手く動いています。
コンテナの停止
まず以下のコマンドでコンテナの一覧を表示します。
docker ps -a
以下のようにコンテナの一覧が表示されました。Upの状態であることがわかります。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1d2dcda1f2e0 nginx "nginx -g 'daemon ..." 9 minutes ago Up 9 minutes 0.0.0.0:8181->80/tcp nginx-container
コンテナ名を指定して停止します。
docker stop nginx-container
dockerの基本的なコマンドは別途検索するとよさそうです。
コンテナを動かしたり、停止したり、コンテナやイメージが削除できるようになりました。
参考にさせて頂いたさくらのナレッジ第三回などを引き続きやってみるとより実践的な使い方を一通り経験できそうです。
今回はここまで。