10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker環境をEC2でアップして開発環境をつくる

Last updated at Posted at 2016-03-03

Wordpressを先にやったほうが簡単かもしれない

Dockerでやると何が楽か?
・コマンド1つ実行するだけで、仮想マシンの自動起動と、Dockerデーモンのプロビジョニングを行います。
・複数の環境でもコマンドで管理できる。

Docker on AWS

Amazon Web Service 上で、docker Machineを作ってみよう。

先に準備しておこう > IAM作成とキーの取得

amazonec2-access-key、amazonec2-secret-key、などを取得します。

docker-machine

Docker環境が動作するサーバ環境を「docker-machine」コマンドで作成します

EC2上であれば、Docker環境を準備しなくても[docker-machine]コマンドを実行すると、
自動的にDockerが入ったインスタンスを起動してくれます。

docker-machine create 
--driver amazonec2 
--amazonec2-access-key AKI******* 
--amazonec2-secret-key 8T93C********* 
--amazonec2-vpc-id vpc-****** aws01
--amazonec2-zone b 
{作成するインスタンス名}

なんで、以下のようなコマンドで作成してみます

docker-machine create 
--driver amazonec2 
--amazonec2-access-key AXXXXX
--amazonec2-secret-key fXXXXX
--amazonec2-vpc-id vpc-XXXXXXX
--amazonec2-zone b 
docker-bohebohe

できたか確認してみる

% docker-machine ls   

NAME              ACTIVE   DRIVER       STATE     URL                       SWARM
default           -        virtualbox   Stopped
docker-bohebohe   -        amazonec2    Running   tcp://54.1XX.XX.XX:2376

sshで接続

% docker-machine ssh docker-bohebohe                                                                                                                                  [14:18:47]
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-53-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Mon Dec  7 05:16:14 UTC 2015

  System load:  0.54              Processes:              107
  Usage of /:   9.2% of 15.61GB   Users logged in:        0
  Memory usage: 12%               IP address for eth0:    172.31.48.19
  Swap usage:   0%                IP address for docker0: 172.17.0.1

  Graph this data and manage this system at:
    https://landscape.canonical.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud


*** System restart required ***
ubuntu@docker-bohebohe:~$

ec2に接続するために、sshのキーペアの設定をしなくても接続できるので楽チン。

作成したDockerマシンの環境変数の設定を行う

つぎに、docker-composerで、環境を作成するわけですが、どこのdockerに実行するのかわからないですよね。なので、環境変数で設定してあげることが大事です。

env コマンドを実行すると環境変数を export する文が表示される

$ docker-machine env docker-bohebohe

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://XXX.XXX.XXX.XXX:2376"
export DOCKER_CERT_PATH="/Users/ashibuya/.docker/machine/machines/docker-2"
export DOCKER_MACHINE_NAME="docker-2"

上記を環境変数にセットしない場合は以下のコマンドを実行する

Run this command to configure your shell:
eval "$(docker-machine env docker-2)"

docker-compose

docker-composeは複数のコンテナやアプリケーションを構築・管理するためのコマンドラインツールです。

以下の2つのファイルを使って、環境構築ができます。

Dockerfile
docker-compose.yml

複数のクラスタを作成してみよう

さて、上記の作業が終わったら、実際にWordpressの環境を構築してみましょう。

よく例にだされているWordPress環境を構築するためのファイルを作成します。
内容については、こちらの公式サイトで確認してから作成して

Quickstart Guide: Compose and WordPress
https://docs.docker.com/compose/wordpress/

docker-compose up

で実行できます。

コンテナ操作をコマンドラインから実行する

プロセス

  • バックエンドで起動する
docker-compose up -d 


Starting wp_db_1
Starting wp_web_1
  • コンテナのプロセスを確認する
docker ps [16:45:51]
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
52c6716f135e wp_web "php -S 0.0.0.0:8000 " About an hour ago Up About an hour 0.0.0.0:8000->8000/tcp wp_web_1
8d109d3738dd orchardup/mysql "/usr/local/bin/run" About an hour ago Up About an hour 3306/tcp wp_db_1
OK ~/Docker/wp

コンテナの中にログインする

docker exec -it wp_web_1 /bin/bash
root@52c6716f135e:/# ls

内容を削除したい場合

  • コンテナをストップさせる
docker-compose stop [16:53:22]
Stopping wp_web_1 ... done
Stopping wp_db_1 ... done
OK ~/Docker/wp
  • 対象となるコンテナを削除する

すべて消す場合

docker-compose rm

単体で消す場合

docker rm wp_web_1 [16:53:43]
wp_web_1
OK ~/Docker/wp
  • 対象となるイメージも削除する
docker images [16:54:14]

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
wp_web latest e1c39e6fc952 About an hour ago 349.7 MB
orchardup/mysql latest ab3b99429ab1 15 months ago 292.4 MB
<none> <none> baa319719d3f 16 months ago 103.9 MB
orchardup/php5 latest c385b8a81cee 17 months ago 330.1 MB
docker rmi wp_web [16:54:23]

Untagged: wp_web:latest
Deleted: e1c39e6fc95256e962cb724a16130d4a9c1319a550a4a434dae4bd50fb2a92b4
docker images [16:54:52]

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
orchardup/mysql latest ab3b99429ab1 15 months ago 292.4 MB
<none> <none> baa319719d3f 16 months ago 103.9 MB
orchardup/php5 latest c385b8a81cee 17 months ago 330.1 MB
  • もう一度起動する
docker-compose up -d 
Starting wp_db_1
Building web
Step 1 : FROM orchardup/php5
---> c385b8a81cee
Step 2 : ADD . /code
---> ed228b1c2274
Removing intermediate container 4a181521b732
Successfully built ed228b1c2274
Creating wp_web_1

ログを確認する

docker-compose logs

各コンテナのログを確認したい場合

docker XXXXX logs

どうしてもdockerのイメージが消えてくれない場合

docker ps -a -q | xargs docker rm

で、再度、docker images

で表示されてきたイメージを消す

docker rmi <ID>

きれいになくなりました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?