Docker
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
-[[実践 Docker - ソフトウェアエンジニアの「Docker よくわ...
*基本 [#d4461705]
-[[Docker ドキュメント日本語化プロジェクト:http://docs.do...
-[[Dockerのすべてが5分でわかるまとめ!(コマンド一覧付き):h...
-[[Dockerについて基本から最近追加された機能までまとめ:htt...
-[[(初心者向け)Dockerの使い方:http://qiita.com/butada/ite...
-[[そろそろDockerを始めないとやばいと思い始めたあなたへ:h...
-[[Dockerコマンドメモ:http://qiita.com/curseoff/items/a9e...
-[[Docker チートシート:https://www.qoosky.io/techs/0a0bd5...
-[[Docker ノウハウ集:http://qiita.com/eidera/items/19decb...
-[[進化を続けるDockerの今を知る 記事一覧:https://thinkit....
-[[Dockerを知る -周辺ツールと業界動向- 記事一覧:https://t...
-[[より深くDockerを知る 記事一覧:https://thinkit.co.jp/se...
-[[古賀政純の「攻めのITのためのDocker塾」:http://www.itme...
**注意点 [#f5b7da97]
-Dockerではコンテナを削除するとコンテナ内のファイルシステ...
--ボリューム機能やボリュームプラグインを利用する
**インストール [#nfda45ad]
# yum install docker
# chkconfig docker on
# service docker start
# systemctl enable docker.service
*ネットワーク [#j450f144]
-[[Docker コンテナ・ネットワークの理解:https://docs.docke...
-[[network コマンドを使う:https://docs.docker.jp/engine/u...
-Docker上のネットワークを確認
# docker network ls
NETWORK ID NAME DRIVER SCOPE
68404cfc20d7 bridge bridge local
8734698e49f4 host host local
73a2d6fc1070 none null local
-ネットワークの詳細を表示
# docker network inspect bridge
[
{
"Name": "bridge",
"Id": "68404cfc20d79e6884e578fb1666b065d22c6a516...
"Created": "2021-05-18T08:39:46.2054623Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"66768b3228e486a9cee4377694961978599529f2590...
"Name": "flamboyant_lamarr",
"EndpointID": "3a4743a6313199658f0d12e8b...
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": ...
"com.docker.network.bridge.enable_icc": "tru...
"com.docker.network.bridge.enable_ip_masquer...
"com.docker.network.bridge.host_binding_ipv4...
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
"Labels": {}
}
]
*頻出イメージ [#e4c05354]
-[[Docker Hub:https://hub.docker.com]]
-[[DockerHubすぐに使えるコンテナ集:https://www.j74th.com/...
-[[DockerでLaravel+PHP5.6+MySQL5.6+Apacheの環境構築:http:...
**[[centos:https://hub.docker.com/_/centos/]] [#c0a2244f]
-CentOS
# docker pull centos
# docker run -i -t centos /bin/bash
**[[busybox:https://hub.docker.com/_/busybox/]] [#xbff5c0d]
-標準UNIXコマンドの主要コマンドをまとめて1つの実行ファイ...
**[[greyltc/lamp:https://hub.docker.com/r/greyltc/lamp/]]...
-LAMP環境
# docker pull docker pull greyltc/lamp
# docker run --name lamp01 -p 80:80 -p 443:443 -d greylt...
**[[gargron/mastodon:https://hub.docker.com/r/gargron/mas...
-Mastodonサーバ
-[[Mastodonを構成する要素の概要を理解する:http://qiita.co...
-[[Mastodonを構成する要素を理解する(docker-compose編):htt...
-[[Dockerで立ち上げたMastodonのDBを後から永続化する:http:...
*docker-compose [#veab67e0]
-[[docker-compose.yml の内容を理解しよう:https://futureys...
-[[プラットフォーム依存しない新しい「Docker Compose」マル...
-[[Docker composerでデータコンテナ分離とバックアップ・リ...
-docker-composeはDockerのコマンドであり、docker-compose.y...
-docker-compose.yml と docker-composeコマンドを使うことに...
--コンテナ上のサービスはサーバ内のファイルやリポジトリを...
--サービス起動に必要な環境変数を外部ファイルから読み込める
--再起動時のサービスの振る舞いを設定できる
--サービス上のデータはデータボリュームを使い保管できる
--サービス上のポートをホスト側に繋ぐことが出来る
--サービス同士の依存関係が設定できる
**インストール [#aeec3c5b]
# curl -L https://github.com/docker/compose/releases/dow...
# chmod +x /usr/local/bin/docker-compose
**docker-compose.yml 作成 [#r98d4952]
-[[Compose ファイル・リファレンス:http://docs.docker.jp/c...
version: '2'
services:
#
# nginx-proxy
#
proxy:
container_name: proxy
image: docker.io/jwilder/nginx-proxy
ports:
- "8080:80"
- "8443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
#
# lamp (foobar.fika.pw)
#
lamp01:
container_name: lamp01
depends_on:
- proxy
image: greyltc/lamp
ports:
- "8090-8180:80"
- "8453-8543:443"
environment:
VIRTUAL_HOST: foobar.fika.pw
volumes:
- lamp01_html:/srv/http
- lamp01_mysql:/var/lib/mysql
volumes:
lamp01_html:
driver: local
lamp01_mysql:
driver: local
-注意点
--YAMLファイルはタブが使えない。スペースを打て!
--コンテナ名を指定したい場合は container_name を指定
--バージョン2のファイル では名前を付けたボリュームを使う...
-疑問点
--名前付きデータボリュームXXXの名前が勝手に「docker_XXX」...
*データの永続化 [#r6719dc6]
-[[Docker: データボリュームとデータボリュームコンテナ:htt...
-[[Dockerのボリュームプラグインとストレージドライバ(Dock...
-データボリュームはそのコンテナ特有のデータを扱う場合に使...
**データボリューム [#c3f06f31]
-Dockerホストのディレクトリ(一般に「/var/lib/docker/volu...
-このディレクトリはコンテナ起動時にマウントポイントとして...
-1つまたは複数のコンテナ内に特別に指定されたディレクトリ...
-Dockerで1つのオブジェクトとして管理されている
-コンテナをまたいで共有と再利用可能である
-データボリュームへ変更した結果はすぐに反映される
-コンテナ自身が消えてもデータボリュームは消えない
-コンテナを作成・起動時にデータボリュームも作成
# docker run -t -i -v testvolume01:/data --name srv01 ce...
--v [ボリューム名]:[コンテナ側のマウントポイント]
-データボリュームのみ作成
# docker volume create --name mysql_data
**データボリュームコンテナ [#nd813223]
-データボリューム自体は、外部からアクセスができないため、...
-コンテナをまたいで永続的なデータが共有できる
-通常のコンテナと何ら変わらないが、コンテナのイメージはラ...
-[[Docker データボリュームコンテナをつくる:http://unskill...
# docker create -it -v datavol01:/data --name datavol01 ...
# docker run -it --volumes-from datavol01 --name cent01 ...
**ボリュームプラグイン [#lde9da50]
-Dockerホスト以外のストレージをボリュームとして利用できる
-独自のプラグインを開発できるよう仕様も公開されている
-[[Use Docker Engine plugins:https://docs.docker.com/engi...
-[[Dockerコンテナがフェイルオーバーしたとき、ストレージも...
*バックアップツール [#g3b2ff69]
**Convoy [#x3040db3]
-[[Dockerコンテナ環境のバックアップツール「Convoy」を使う...
-[[Docker+Convoyでバックアップ:http://qiita.com/kuri_hei/...
-[[第10回 Docker環境におけるバックアップ/リストアの罠 (1...
-[[第11回 Docker環境のバックアップをラクにする「Convoy」...
-[[第12回 Docker環境のバックアップツール「Convoy」を試す ...
-[[DockerでMinecraftサーバを動かし,Convoyでバックアップ...
-Convoyは数あるボリュームドライバのうちの一つである.
-Convoyにはデータボリュームをスナップショット・バックアッ...
-Convoyを使うには,データ自体を記録するストレージと,メタ...
***インストール [#ga758659]
# https://github.com/rancher/convoy/releases/download/v0...
# tar xvf convoy.tar.gz
# cp convoy/convoy convoy/convoy-pdata_tools /usr/local/...
# mkdir -p /etc/docker/plugins/
# bash -c 'echo "unix:///var/run/convoy/convoy.sock" > /...
***Convoyが利用するボリュームとメタボリュームの作成と設定...
# truncate -s 100G data.vol
# truncate -s 1G metadata.vol
# losetup /dev/loop5 data.vol
# losetup /dev/loop6 metadata.vol
-truncate コマンドで [[Sparse File:http://hogem.hatenablo...
-losetup コマンドで [[ループデバイス:http://blog.amedama....
***Convoyのデーモンを起動 [#r33d239f]
# convoy daemon --drivers devicemapper --driver-opts dm....
*コンテナオーケストレーションツール [#ca3db3d6]
-クラスタ構成を自動的に維持してくれる
-[[KubernetesとMesos:Dockerのスケジューリングツールの違...
**Kubernetes [#e213f584]
-[[kubernetesによるDockerコンテナ管理入門:http://knowledg...
-[[Kubernetesの主な機能一覧 (v1.5時点):http://qiita.com/t...
-[[minikubeでKubernetesのチュートリアルをやってみた:https...
-kubernetesが提供する機能
--関連するコンテナのグルーピング
--コンテナに割り振られるIPアドレスの管理
--コンテナ間のネットワークルーティング管理
--複数のコンテナを利用した負荷分散
--コンテナに割り当てるストレージの管理
--コンテナの監視
**Mesos [#b2a93329]
*Moby [#t45d4b1e]
-[[「Moby」ベースとなったオープンソース版Dockerの最新状況...
*Tips [#oc5089e1]
-[[dockerのコンテナに固定IPを振る:https://qiita.com/refle...
終了行:
-[[実践 Docker - ソフトウェアエンジニアの「Docker よくわ...
*基本 [#d4461705]
-[[Docker ドキュメント日本語化プロジェクト:http://docs.do...
-[[Dockerのすべてが5分でわかるまとめ!(コマンド一覧付き):h...
-[[Dockerについて基本から最近追加された機能までまとめ:htt...
-[[(初心者向け)Dockerの使い方:http://qiita.com/butada/ite...
-[[そろそろDockerを始めないとやばいと思い始めたあなたへ:h...
-[[Dockerコマンドメモ:http://qiita.com/curseoff/items/a9e...
-[[Docker チートシート:https://www.qoosky.io/techs/0a0bd5...
-[[Docker ノウハウ集:http://qiita.com/eidera/items/19decb...
-[[進化を続けるDockerの今を知る 記事一覧:https://thinkit....
-[[Dockerを知る -周辺ツールと業界動向- 記事一覧:https://t...
-[[より深くDockerを知る 記事一覧:https://thinkit.co.jp/se...
-[[古賀政純の「攻めのITのためのDocker塾」:http://www.itme...
**注意点 [#f5b7da97]
-Dockerではコンテナを削除するとコンテナ内のファイルシステ...
--ボリューム機能やボリュームプラグインを利用する
**インストール [#nfda45ad]
# yum install docker
# chkconfig docker on
# service docker start
# systemctl enable docker.service
*ネットワーク [#j450f144]
-[[Docker コンテナ・ネットワークの理解:https://docs.docke...
-[[network コマンドを使う:https://docs.docker.jp/engine/u...
-Docker上のネットワークを確認
# docker network ls
NETWORK ID NAME DRIVER SCOPE
68404cfc20d7 bridge bridge local
8734698e49f4 host host local
73a2d6fc1070 none null local
-ネットワークの詳細を表示
# docker network inspect bridge
[
{
"Name": "bridge",
"Id": "68404cfc20d79e6884e578fb1666b065d22c6a516...
"Created": "2021-05-18T08:39:46.2054623Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"66768b3228e486a9cee4377694961978599529f2590...
"Name": "flamboyant_lamarr",
"EndpointID": "3a4743a6313199658f0d12e8b...
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.default_bridge": ...
"com.docker.network.bridge.enable_icc": "tru...
"com.docker.network.bridge.enable_ip_masquer...
"com.docker.network.bridge.host_binding_ipv4...
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
"Labels": {}
}
]
*頻出イメージ [#e4c05354]
-[[Docker Hub:https://hub.docker.com]]
-[[DockerHubすぐに使えるコンテナ集:https://www.j74th.com/...
-[[DockerでLaravel+PHP5.6+MySQL5.6+Apacheの環境構築:http:...
**[[centos:https://hub.docker.com/_/centos/]] [#c0a2244f]
-CentOS
# docker pull centos
# docker run -i -t centos /bin/bash
**[[busybox:https://hub.docker.com/_/busybox/]] [#xbff5c0d]
-標準UNIXコマンドの主要コマンドをまとめて1つの実行ファイ...
**[[greyltc/lamp:https://hub.docker.com/r/greyltc/lamp/]]...
-LAMP環境
# docker pull docker pull greyltc/lamp
# docker run --name lamp01 -p 80:80 -p 443:443 -d greylt...
**[[gargron/mastodon:https://hub.docker.com/r/gargron/mas...
-Mastodonサーバ
-[[Mastodonを構成する要素の概要を理解する:http://qiita.co...
-[[Mastodonを構成する要素を理解する(docker-compose編):htt...
-[[Dockerで立ち上げたMastodonのDBを後から永続化する:http:...
*docker-compose [#veab67e0]
-[[docker-compose.yml の内容を理解しよう:https://futureys...
-[[プラットフォーム依存しない新しい「Docker Compose」マル...
-[[Docker composerでデータコンテナ分離とバックアップ・リ...
-docker-composeはDockerのコマンドであり、docker-compose.y...
-docker-compose.yml と docker-composeコマンドを使うことに...
--コンテナ上のサービスはサーバ内のファイルやリポジトリを...
--サービス起動に必要な環境変数を外部ファイルから読み込める
--再起動時のサービスの振る舞いを設定できる
--サービス上のデータはデータボリュームを使い保管できる
--サービス上のポートをホスト側に繋ぐことが出来る
--サービス同士の依存関係が設定できる
**インストール [#aeec3c5b]
# curl -L https://github.com/docker/compose/releases/dow...
# chmod +x /usr/local/bin/docker-compose
**docker-compose.yml 作成 [#r98d4952]
-[[Compose ファイル・リファレンス:http://docs.docker.jp/c...
version: '2'
services:
#
# nginx-proxy
#
proxy:
container_name: proxy
image: docker.io/jwilder/nginx-proxy
ports:
- "8080:80"
- "8443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
#
# lamp (foobar.fika.pw)
#
lamp01:
container_name: lamp01
depends_on:
- proxy
image: greyltc/lamp
ports:
- "8090-8180:80"
- "8453-8543:443"
environment:
VIRTUAL_HOST: foobar.fika.pw
volumes:
- lamp01_html:/srv/http
- lamp01_mysql:/var/lib/mysql
volumes:
lamp01_html:
driver: local
lamp01_mysql:
driver: local
-注意点
--YAMLファイルはタブが使えない。スペースを打て!
--コンテナ名を指定したい場合は container_name を指定
--バージョン2のファイル では名前を付けたボリュームを使う...
-疑問点
--名前付きデータボリュームXXXの名前が勝手に「docker_XXX」...
*データの永続化 [#r6719dc6]
-[[Docker: データボリュームとデータボリュームコンテナ:htt...
-[[Dockerのボリュームプラグインとストレージドライバ(Dock...
-データボリュームはそのコンテナ特有のデータを扱う場合に使...
**データボリューム [#c3f06f31]
-Dockerホストのディレクトリ(一般に「/var/lib/docker/volu...
-このディレクトリはコンテナ起動時にマウントポイントとして...
-1つまたは複数のコンテナ内に特別に指定されたディレクトリ...
-Dockerで1つのオブジェクトとして管理されている
-コンテナをまたいで共有と再利用可能である
-データボリュームへ変更した結果はすぐに反映される
-コンテナ自身が消えてもデータボリュームは消えない
-コンテナを作成・起動時にデータボリュームも作成
# docker run -t -i -v testvolume01:/data --name srv01 ce...
--v [ボリューム名]:[コンテナ側のマウントポイント]
-データボリュームのみ作成
# docker volume create --name mysql_data
**データボリュームコンテナ [#nd813223]
-データボリューム自体は、外部からアクセスができないため、...
-コンテナをまたいで永続的なデータが共有できる
-通常のコンテナと何ら変わらないが、コンテナのイメージはラ...
-[[Docker データボリュームコンテナをつくる:http://unskill...
# docker create -it -v datavol01:/data --name datavol01 ...
# docker run -it --volumes-from datavol01 --name cent01 ...
**ボリュームプラグイン [#lde9da50]
-Dockerホスト以外のストレージをボリュームとして利用できる
-独自のプラグインを開発できるよう仕様も公開されている
-[[Use Docker Engine plugins:https://docs.docker.com/engi...
-[[Dockerコンテナがフェイルオーバーしたとき、ストレージも...
*バックアップツール [#g3b2ff69]
**Convoy [#x3040db3]
-[[Dockerコンテナ環境のバックアップツール「Convoy」を使う...
-[[Docker+Convoyでバックアップ:http://qiita.com/kuri_hei/...
-[[第10回 Docker環境におけるバックアップ/リストアの罠 (1...
-[[第11回 Docker環境のバックアップをラクにする「Convoy」...
-[[第12回 Docker環境のバックアップツール「Convoy」を試す ...
-[[DockerでMinecraftサーバを動かし,Convoyでバックアップ...
-Convoyは数あるボリュームドライバのうちの一つである.
-Convoyにはデータボリュームをスナップショット・バックアッ...
-Convoyを使うには,データ自体を記録するストレージと,メタ...
***インストール [#ga758659]
# https://github.com/rancher/convoy/releases/download/v0...
# tar xvf convoy.tar.gz
# cp convoy/convoy convoy/convoy-pdata_tools /usr/local/...
# mkdir -p /etc/docker/plugins/
# bash -c 'echo "unix:///var/run/convoy/convoy.sock" > /...
***Convoyが利用するボリュームとメタボリュームの作成と設定...
# truncate -s 100G data.vol
# truncate -s 1G metadata.vol
# losetup /dev/loop5 data.vol
# losetup /dev/loop6 metadata.vol
-truncate コマンドで [[Sparse File:http://hogem.hatenablo...
-losetup コマンドで [[ループデバイス:http://blog.amedama....
***Convoyのデーモンを起動 [#r33d239f]
# convoy daemon --drivers devicemapper --driver-opts dm....
*コンテナオーケストレーションツール [#ca3db3d6]
-クラスタ構成を自動的に維持してくれる
-[[KubernetesとMesos:Dockerのスケジューリングツールの違...
**Kubernetes [#e213f584]
-[[kubernetesによるDockerコンテナ管理入門:http://knowledg...
-[[Kubernetesの主な機能一覧 (v1.5時点):http://qiita.com/t...
-[[minikubeでKubernetesのチュートリアルをやってみた:https...
-kubernetesが提供する機能
--関連するコンテナのグルーピング
--コンテナに割り振られるIPアドレスの管理
--コンテナ間のネットワークルーティング管理
--複数のコンテナを利用した負荷分散
--コンテナに割り当てるストレージの管理
--コンテナの監視
**Mesos [#b2a93329]
*Moby [#t45d4b1e]
-[[「Moby」ベースとなったオープンソース版Dockerの最新状況...
*Tips [#oc5089e1]
-[[dockerのコンテナに固定IPを振る:https://qiita.com/refle...
ページ名: