8
8

More than 5 years have passed since last update.

JAWSUG コンテナ支部: Dockerハンズオン #2

Last updated at Posted at 2015-10-30

 
JAWS-UGコンテナ支部 Docker入門 #2 のハンズオン資料です。
(当日のスライドはこちら

1. 準備

1.1. CloudFormationを実行します

1.1. EC2コンソール東京リージョンにログイン
ハンズオンで使えるキーペアがあるか確認。
なければ作りましょう!
https://ap-northeast-1.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#KeyPairs:sort=keyName

1.2. 以下リンクから、CloudFormation実行
https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-1#/stacks/new?stackName=JAWSUG-Container-Try-Docker&templateURL=https:%2F%2Fjawsug-container.s3.amazonaws.com%2Fcfn-templates%2F02.template

1.3. Docker ToolBoxのダウンロード
https://www.docker.com/docker-toolbox

1.4. Docker Quickstart Terminalを起動します

1.5. 以下のコマンドを実行してみましょう
(dockerのAPIバージョンは1.20のはず)

コマンド
docker version

1.6. EC2インスタンス一覧から起動した EC2インスタンスを探し
Public IPアドレスをコピー(Ctrl+C)します。
https://ap-northeast-1.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#Instances:sort=Name

1.7. Docker APIへの接続
以下の「ec2.public.ip.address」を、コピーしたIPアドレスに置き換えながら

(1) 「サーバの中で直接 Dockerを操作」したい方
 下記コマンドを自分用に編集して、
 起動したEC2インスタンスに SSH接続しましょう!
  * pemの権限やパスを間違えるとつながりませんよ〜
  * ユーザ名は ec2-userではなく、coreです!
  * Windowsの方は TeraTermなどから接続してください

コマンド
ssh -i your-keypair.pem core@ec2.public.ip.address

(2)「Docker Quickstart Terminalから Remote API経由で操作」したい方
 必要な環境変数をセットしましょう!

コマンド
export DOCKER_HOST=tcp://ec2.public.ip.address:2375
export DOCKER_TLS_VERIFY=
export DOCKER_CERT_PATH=

2. docker images, ps(イメージ、コンテナの一覧取得)

コマンド
docker images
docker ps

3. docker run(コンテナの起動)

コマンド
docker run java:8 java -version
docker run java:7 java -version

4. docker run -d(デーモンコンテナの起動)

3秒おきにHello-world
docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 3; done"
MariaDBの起動
docker run -d -e MYSQL_ROOT_PASSWORD=p4ssw0rd -p 3306:3306 mariadb:10

5. docker logs(コンテナのログを確認する)

コマンド
docker logs monit

6. docker start, stop, restart(コンテナの開始・停止)

monitコンテナの停止
docker stop monit
docker ps -a
monitコンテナの再開
docker start monit
docker restart monit
docker ps -a

7. docker commit, history(イメージの作成)

コンテナに入ります
docker run -it ubuntu:14.04 /bin/bash
コンテナの中にファイルを作ります
ls /tmp
echo 'hello, world!' > /tmp/hello.txt
exit
新しいイメージを作ります
docker commit $(docker ps -lq) handson

8. MySQLを複数立ち上げて繋いでみる

お掃除
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
MySQLの2バージョン同時起動
docker run -d --name mysql56 -e MYSQL_ROOT_PASSWORD=pw mysql:5.6
docker run -d --name mysql57 -e MYSQL_ROOT_PASSWORD=pw mysql:5.7
MySQL5.7の起動確認
docker logs -f mysql57
(その後 Ctrl+Cで切断)
MySQL5.6への接続
docker run -it --rm --link mysql56:mysql mysql:5.6 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
(その後 Ctrl+Dで切断)
MySQL5.7への接続
docker run -it --rm --link mysql57:mysql mysql:5.7 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
(その後 Ctrl+Dで切断)

9. 後片付け

9.1. CloudFormationコンソールを開きます
https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-1#/stacks

9.2. 今回ハンズオンで使ったスタックを選択し「Delete Stack」しましょう

9.3.「Docker Quickstart Terminalから Remote API経由で操作」した方
環境変数をもとにもどしましょう

コマンド
unset DOCKER_HOST
unset DOCKER_TLS_VERIFY
unset DOCKER_CERT_PATH
env | grep DOCKER

以上

8
8
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
8
8