概要
Dockerの基本を勉強しながら、実際にAWSのEC2に入れてみた。
その作業記録を以下に記載します。
インストール
$ sudo yum -y install docker-io
起動
$ sudo service docker start
元となるイメージを取得
※Dockerの提供元が各Linuxのディストリビューションイメージを提供してくれている
以下のDocker Hubでイメージを検索できる
https://registry.hub.docker.com/
$ sudo docker pull centos
保存済みのイメージ一覧
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos latest 7322fbe74aa5 3 weeks ago 172.2 MB
コンテナ起動
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
$ sudo docker run -it centos
-d:バックグラウンドで実行する。
-i:コンテナの標準入力を開く。/bin/bashなどでコンテナを操作する際に指定。
-t:tty(端末デバイス)を確保する。/bin/bashなどでコンテナを操作する際に指定。
-p [ホストのポート番号]:[コンテナのポート番号]:ホストとコンテナのポートマッピング。
-v [ホストのディレクトリ]:[コンテナのディレクトリ]:ホストとコンテナのディレクトリ共有。
コンテナ内で、サーバー立ち上げる際、
以下のようにポートマッピングが必要。
$ sudo docker run -it -p 9999:80 centos
コンテナの状態確認
コンテナが停止または中断したものが一覧で確認できる
Exited:停止
Up:中断
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f86b314da11 centos:latest "/bin/bash" 51 seconds ago Exited (0) 37 seconds ago mad_goodall
64b2018621bb centos/apache:latest "/bin/bash" 24 minutes ago Up 24 minutes 0.0.0.0:9999->9999/tcp gloomy_wozniak
200a539beb8b centos/apache:latest "/bin/bash" 25 minutes ago Exited (0) 25 minutes ago drunk_babbage
停止したコンテナに関しては、再接続できないので、またアクセスしたい場合は
コンテナのイメージ保存をする必要がある。
そうでない場合は不要なので削除しておく。
イメージ保存
$ sudo docker commit [CONTAINER ID] [REPOSITORY]
保存完了の確認は、前述の docker images
でやる。
イメージ削除
$ sudo docker rmi [IMAGE ID]
コンテナ削除
$ sudo docker rm [CONTAINER ID]
コンテナの停止、中断
停止の場合
※コンテナ内の端末で
$ exit
中断の場合
※コンテナ内の端末で
$ (Ctrl + p)(Ctrl + q)
コンテナへの再接続
※再接続は中断されたもののみ
$ sudo docker attach [CONTAINER ID]
参考
https://docs.docker.com/
http://qiita.com/zwirky/items/991f61a231f4e198a320
http://d.hatena.ne.jp/kt_hiro/20140809/1407545821
http://docker.yuichi.com/quickstart/tryit/index.html
http://qiita.com/iron-breaker/items/6b74fe9b0620b74d4281