Mais conteúdo relacionado
Semelhante a Docker超入門 (20)
Mais de VirtualTech Japan Inc. (20)
Docker超入門
- 2. 前提要件
• Docker CE 18.09以降のバージョン
• Managementコマンドを使う
• Docker Compose 1.24.1以降のバージョン
2
- 3. 色々なDocker
• Docker Engine
• dockerコマンドで色々するそれ
• Docker Compose
• アプリケーションの展開
• Docker Machine
• Docker Engineをセットアップ
• Docker Swarm
• クラスター構成するときに使う
3
青字のコンポーネントが対象
- 7. すぐ使い始めることができる
1. ハイパーバイザーのインストール
2. 仮想マシンの作成
3. 仮想マシンにOSのインストール
4. アプリケーション実行環境のインスト
ール
5. アプリケーションの配備
6. コンテンツの配備
1. Dockerのインストール
2. アプリケーションを動かすためのイメ
ージを使ってコンテナーを作成
3. コンテンツの配備
7
仮想化の場合 Dockerの場合
NGINX、Apache2、
Node.js、Python、Ruby、
PHP
Golang、Java etc...
- 12. Dockerのインストール
• CentOS 7 / Fedoraの場合
• sudo yum install docker
• sudo systemctl start docker
• sudo systemctl enable docker
• Ubuntu / Debianの場合
• sudo apt update
• sudo apt install docker.io
12
ディストリビューション版
パッケージを使う場合
- 14. Dockerコンテナーの検索
• 「docker search 〜」コマンドでコンテナーイメージを検索できる
• docker search centos
• docker search ubuntu
• 「-f」オプションでフィルターできる
• 例えばオフィシャルイメージのみ表示するとか
• docker search centos -f is-official=true
14
- 17. Dockerイメージのおすすめ
• busybox
• 一通りのコマンドが入っている
• テスト用およびベースイメージとして使うなど
• alpine
• 軽量かつパッケージ管理ツールでカスタム可能
• 他のイメージのalpineイメージもおすすめ
• debian:stable-slim
• slimつきイメージはサイズが小さい(約1/2)
17
Ubuntu、CentOS、Debian
など色々イメージがある。
hub.docker.comで検索できる
- 18. Dockerコンテナータグの検索
• 「docker search」コマンドではタグ(バージョン)までは確認できない
• 例えばCentOS 7とか、6とか
• curlで頑張るか、ブラウザーでDocker hubを検索
• ex1: curl -s
https://registry.hub.docker.com/v1/repositories/centos/tags |
sed "s/,/¥n/g" | grep name | cut -d '"' -f 4
• ex2: curl -s
https://registry.hub.docker.com/v1/repositories/centos/tags | jq
18
要 GNU sed
要 jq
- 19. Dockerコンテナーの作成
• 「docker container run」で新規作成
• 基本
• docker container run --name=cont1 -it busybox sh
• 実行して結果を出力したらコンテナーを削除(使い切りコンテナー)
• docker container run --name=cont2 --rm -it busybox ping -c3 9.9.9.9
• 起動を継続(デーモンとして実行)するコンテナー
• docker container run --name=cont3 -d -it busybox sh
19
- 20. docker container run補足
• アプリケーションによって指定するオプションは異なる
• 基本の使いかたはこんな感じ
• コンテナー名を指定しない場合はランダム
20
docker container run -it--name=cont1 sh
コンテナを作成
する場合
対話モード
(Interactive)
ttyを開く
コンテナ名 コマンド
busybox
Docker
イメージ
- 23. docker container exec 補足
• 「docker container run」した時のオプションを指定する
23
docker container exec -it cont1 sh
コンテナにアクセス
する場合
対話モード
ttyを開く
コンテナ名 コマンド
- 31. ディレクトリーのマウント実行例
• ローカルディレクトリーをコンテナーの/root/workにマウント
• docker container run -v /root/work:/root/work -w /root/work -
it python:3.6-slim bash
• データボリュームコンテナーを作って別のコンテナーで利用
• docker container run -it -d -v /data --name datavol busybox
• docker container run -it --volumes-from datavol --name test
centos:7 bash
31
カレントディレク
トリーを指定
- 33. docker container commitでイメージ化
• CentOS7 + Webサーバーコンテナーをイメージとしてコミット
• docker container run --privileged --name=cont1 -it centos:7
bash
• yum install -y httpd && exit
• docker container commit cont1 httpd-template
33
特権モード
- 34. docker container commitイメージを使う
• コミットしたイメージでWebサーバーを動かす例
• docker container run --privileged -d -p 50080:80 --name cont2
httpd-template:latest /sbin/init
• docker container exec -it cont2 bash -c "systemctl start httpd"
• curl http://localhost:50080
34
- 36. docker image build実行例
• docker image build --compress -t apache:latest -f dockerfile-
apache .
• docker container run --privileged -d --name=cont1 -p 58080:80 -it
apache:latest
• curl http://localhost:58080
36
FROM centos:7
RUN yum install -y httpd && ¥
yum clean all && ¥
systemctl enable httpd.service
CMD /sbin/init
EXPOSE 80
dockerfile-apache
最後にドットをつける
- 39. ローカルリポジトリーの作成と利用
• Docker Hubに「Docker Registry」イメージがある
• https://hub.docker.com/_/registry
• http://docs.docker.jp/registry/toc.html
• これを使うと独自のDockerリポジトリーを立ち上げられる
• 繰り返し使うイメージのキャッシュ
• 非公開にしたいイメージの管理
• 常時オンラインではない環境での利用
39
- 43. YAML記述例
version: '2'
services:
db:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
links:
- db
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
43
MySQLとWebサーバーをデプロイし
ている。わかりやすい
- 44. Docker Compose実行例
# tree docker-compose/
docker-compose/
└── docker-compose.yml ←デプロイするアプリケーションを定義したYAMLファイル
0 directories, 1 file
# docker-compose up -d ←デプロイ実行
# docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------
docker-compose_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
docker-compose_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8000->80/tcp
# docker-compose down ←アプリケーションの終了
44
Notas do Editor
- PowerPoint版
- https://hub.docker.com/search/?type=edition&offering=community
- 円マークではなくバックスラッシュ