EC2でDockerを動かす
これやってみた
http://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html
ここでの完成形
- EC2 + Docker
- ローカルのMacでDockerイメージをビルド、DockerHubへプッシュ
- EC2上でDockerHubからDockerイメージをプル、Dockerコンテナ起動
+-----+ docker push +------------+ docker pull +--------------+ | Mac | -------------> | Docker Hub | -------------> | EC2 + Docker | +-----+ +------------+ +--------------+
1. ローカルのMacにて Docker環境を立ち上げる
Boot2Dockerの仕組み
ローカルのMacにBoot2Dockerをインストール
- boot2dockrを開始して、環境変数をセット
- これでdockerコマンドが動くようになる
which docker which boot2docker boot2docker init boot2docker start eval "$(boot2docker shellinit)" boot2docker status
- VMにログインするには
boot2docker ssh
- 停止するには
boot2docker stop
2. Macにて コンテナをビルド&起動、Dockerレジストリにpush
- DockerHubのアカウントを取得しておく
- サンプルアプリケーションをclone
- Dockerfileを開いてビルドの内容を確認してみる
git clone https://github.com/awslabs/ecs-demo-php-simple-app
cd ecs-demo-php-simple-app
cat Dockerfile
カレントディレクトリをビルド(名前には自分のDockerHubアカウントを入れる)
- できあがったimageの確認
- コンテナを起動
-p
オプションでコンテナ内外のポートを接続する- 左 = ホストマシンのポート
- 右 = コンテナのポート
docker build -t my-repo/amazon-ecs-sample . docker images docker run -p 80:80 my-repo/amazon-ecs-sample
- VMのIPを確認
http://boot2docker ip の結果IPアドレス/
- DockerHubへpush
boot2docker ip docker login docker push my-repo/amazon-ecs-sample
3. EC2にDockerを入れる
- AWSマネジメントコンソール
sudo yum update -y sudo yum install -y docker sudo service docker start sudo usermod -a -G docker ec2-user id ec2-user exit
docker info
4. EC2にDockerイメージをダウンロード
docker login docker pull my-repo/amazon-ecs-sample docker images
5. EC2でDockerコンテナを起動
docker run -p 80:80 my-repo/amazon-ecs-sample
- 停止するにはCtrl-c