はじめに
コンテナを学習しているのでメモ。
やりたいこと
- AWS EC2 に Apache を入れて動かしたい
作業メモ
Apache コンテナのインストール
Dockerfile
なしで実行する。docker run
コマンドは、以下3つのコマンドをまとめて実行している。docker pull
- リポジトリからイメージを取得
$ docker pull httpd:2.4
docker create
- イメージからコンテナを作成
$docker create --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4
docker start
- コンテナの実行
$docker start my-apache-app
ubuntu@ip-172-31-3-173:~$ docker run -dit --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd: 2.4
動作確認
STATUS
が Up
になっていればOK。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 875ca6b4e291 httpd:2.4 "httpd-foreground" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp, :::8080->80/tcp my-apache-app
docker container ls
コマンドでも同様の結果が得られる。
こちらの書き方のほうが新しい書式。
$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 875ca6b4e291 httpd:2.4 "httpd-foreground" 5 minutes ago Up 5 minutes 0.0.0.0:8080->80/tcp, :::8080->80/tcp my-apache-app
ローカルブラウザからアクセス
http://ec2インスタンスのパブリックIP:8080
でアクセスする。
docker の停止
$ docker stop my-apache-app my-apache-app $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 38e541232b09 httpd:2.4 "httpd-foreground" 3 minutes ago Exited (0) 44 seconds ago my-apache-app
コンテナの再開
$ docker start my-apache-app my-apache-app $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 38e541232b09 httpd:2.4 "httpd-foreground" 4 minutes ago Up 4 seconds 0.0.0.0:8080->80/tcp, :::8080->80/tcp my-apache-app
httpd コンテナのログ確認
$ docker logs my-apache-app
httpd コンテナとイメージの破棄
コンテナの破棄
- stop しても、コンテナイは残り続ける。
- ディスクを圧迫する為、不要なコンテナは破棄する。
$ docker rm my-apache-app my-apache-app
- 破棄すると、
ps -a
コマンドでも表示されない。
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Docker イメージの破棄
- ダウンロードした Docker イメージは、
docker image ls
で確認できる
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE httpd 2.4 98f93cd0ec3b 8 days ago 144MB
- 同じ Docker イメージからコンテナを再作成できるようにするために、毎回ダウンロードはしていない。Docker イメージも破棄できる。
$ docker image rm httpd:2.4 Untagged: httpd:2.4 Untagged: httpd@sha256:c479bec894c5a7f8878b28e52d03cc95b1e784612ecd01ac7c7394fc5fa2e6e2 Deleted: sha256:98f93cd0ec3b2e428f152d265d431bcb3f8a5ff56adaa5023e11a2b3b5a107e7 Deleted: sha256:f4592b579afa218a66285f3652418a826313aac1813be685ff9738dc06c0d8d9 Deleted: sha256:061811c2224e933b8ea3e2e0ffe7ec7bab8c2510f8f938ab13f9c4bacd425bd7 Deleted: sha256:b6ac17bbf3c4d8d63c1a085e9affa7a6c3f6e765f821837ff3d3e7fc0c0706e2 Deleted: sha256:3439b4fb9b4289be9427c14f2840d97e3573dc8d609584d9ceb2ad8bbd3ae9dc Deleted: sha256:ad6562704f3759fb50f0d3de5f80a38f65a85e709b77fd24491253990f30b6be
- 削除するとイメージも消える
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE