コマンドのチートシートはこちらを参照ください。
Docker CLI チートシート - Qoosky
目次
- Dockerインストール(ホストOS作業)
- Dockerコンテナ作成(ホストOS作業)
- Apacheインストール(ゲストOS作業)
- コンテナイメージの保存(ホストOS作業)
- コンテナ内のApacheを起動(ホストOS作業)
- 動作確認
環境
OS : Amazon Linux AMI 2016.09.0 (HVM), SSD Volume Type
作業
1.Dockerインストール(ホストOS作業)
- ルートへ切り替え
# sudo su -
- Dockerをyumのレポジトリからインストール
AmazonLinuxではデフォルトでレポジトリに登録されているので、そのままyumでインストールできます。
# yum install -y docker
- Docker起動&自動起動設定
# service docker start # chkconfig docker on # chkconfig
2.Dockerコンテナ作成(ホストOS作業)
- DockerHubより、CentOS6のイメージをpull
# docker images # docker pull centos:centos6 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos centos6 f07f6ca555a5 5 weeks ago 194.6 MB
- コンテナのデプロイ(ホストOS作業)
先ほどPULLしてきたCentOSのイメージをデプロイ
# docker run -i -t centos:centos6 /bin/bash
3.Apacheインストール(ゲストOS作業)
先ほどのデプロイしたコンテナ内で作業します。
- Apacheインストール
# rpm -qa | grep httpd # yum info httpd # yum install -y httpd # rpm -qa | grep httpd httpd-tools-2.2.15-54.el6.centos.x86_64 httpd-2.2.15-54.el6.centos.x86_64 # service httpd start # chkconfig httpd on # chkconfig
- コンテナからexit
# exit
4.コンテナイメージの保存(ホストOS作業)
Apacheを導入したコンテナイメージを保存します。
- 作成したコンテナID確認
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 84f57724fd5a←確認 centos:centos6 "/bin/bash" 15 minutes ago Exited (0) 4 minutes ago romantic_goldstine a709cc377033 centos:centos6 "/bin/bash" 17 minutes ago Exited (0) 16 minutes ago backstabbing_leavitt
- コンテナイメージの保存
# docker commit 84f57724fd5a centos:httpd2.2.15 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos httpd2.2.15 221ae221bd50 8 seconds ago 295.3 MB ←追加されたイメージ centos centos6 f07f6ca555a5 5 weeks ago 194.6 MB
5.コンテナ内のApacheを起動(ホストOS作業)
# docker ps # docker run -d -p 8080:80 centos:httpd2.2.15 /usr/sbin/httpd -DFOREGROUND # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c281e513e098 centos:httpd2.2.15 "/usr/sbin/httpd -DFO" 3 seconds ago Up 2 seconds 0.0.0.0:8080->80/tcp clever_raman.2.15 /usr/sbin/httpd -DFOREGROUND
docker run -d -p 8080:80 centos:httpd2.2.15 /usr/sbin/httpd -DFOREGROUND
docker run → コンテナを作成
-d → バックグラウンドで起動
-p 8080:80 → ホストポート(8080)をゲストポート(80)へポートフォワード
centos:httpd2.2.15 → 雛形のコンテナイメージ
/usr/sbin/httpd -DFOREGROUND → コンテナ内の/usr/sbin/httpdを実行
6.動作確認
- ブラウザより、コンテナ内のApacheへアクセス(SGはホスト側のポートを解放してください)
http://[EC2のEIP]:8080/
以上となります。
Docker楽しい。