LoginSignup
10
10

More than 5 years have passed since last update.

AWS を使った Docker の基本学習 (1) コンテナの起動、イメージの作成など

Last updated at Posted at 2015-05-31

AWS EC2 を使って、Docker の基本的な操作の流れをまとめてみました。

インストール、準備

まずは、EC2 上に Linux インスタンス(今回は Amazon Linuxを使用)を作成して、SSHでログイン。

Dockerをインストールする。

$ sudo yum install docker -y
$ sudo service docker start

動作確認。

$ sudo docker version
Client version: 1.6.0
Client API version: 1.18
Go version (client): go1.3.3
・・・・

毎回 sudo を打つのが面倒なので、ec2-user を docker グループに追加すると便利。
(いったんログアウトしてから、再ログインすると設定が反映される)

$ sudo usermod -G docker ec2-user

コンテナの起動からイメージの作成

イメージをpullして、コンテナを起動。

# CentOS のイメージを Pull。
# CentOS の7系に詳しくないので、ここでは6系をPullした。
$ docker pull centos:6.6

# コンテナを起動
$ docker run -it --name myweb centos:6.6 /bin/bash

コンテナ内で操作。httpd をインストールしてみた。

# httpd のインストール
[root@02e9b814e7e3 /]# yum install httpd -y

# 必要に応じてHTMLファイルを作成
[root@02e9b814e7e3 /]# vi /var/www/html/index.html

# httpd を開始して、コンテナ内からアクセスしてみる。
# IP アドレスは、ifconfig などから取得する。
[root@02e9b814e7e3 /]# service httpd start
[root@02e9b814e7e3 /]# curl http://172.17.0.4

# bash を終了して、コンテナから抜ける。
exit

コンテナからイメージを作成する。

# コンテナが終了したことを確認
$ docker ps -a

# コンテナを commit して、イメージを作成
# arturias の部分は、適当な名前に置き換えてください。
$ docker commit -m "Installed httpd" myweb arturias/myweb

# イメージが作成されたことを確認
$ docker images

作成したイメージからコンテナを起動

今回はEC2 上で動かしているので、まずは AWS のコンソールなどからセキュリティグループを追加して、HTTP(TCP 80) のアクセスを許可する。

それから、作成したイメージを使ってコンテナを起動。

# ここでは、-d オプションを指定してバックグラウンドで起動させる。
$ docker run -d -p 80:80 --name myweb-test arturias/myweb /usr/sbin/apachectl -DFOREGROUND

# いちおう、コンテナが動作しているか確認。
$ docker ps

この後、EC2 インスタンスの Public IP アドレスへ、ブラウザからアクセスするとWeb ページが見える。

参考

Docker Basics

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10