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(デーモンコンテナの起動)
docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 3; done"
docker run -d -e MYSQL_ROOT_PASSWORD=p4ssw0rd -p 3306:3306 mariadb:10
5. docker logs(コンテナのログを確認する)
docker logs monit
6. docker start, stop, restart(コンテナの開始・停止)
docker stop monit
docker ps -a
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)
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
docker logs -f mysql57
(その後 Ctrl+Cで切断)
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で切断)
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
以上