検索
AND検索
OR検索
トップ
|
リロード
|
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
仮想化技術/Docker をテンプレートにして作成
2021.1 (read)
[
]
日
月
火
水
木
金
土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
AjaxTree
Top
(288)
3D-Graphics
(8)
Help
(15)
PukiWiki
(10)
WEBサービス
(7)
その他
(18)
コンピュータ言語
(19)
サーバー関係
(35)
セキュリティ
(11)
ディスクとファイル共有
(8)
デザイン系
(10)
データベース
(9)
パソコン・機材
(6)
仮想化技術
(4)
情報共有
(14)
教育
(2)
文章ツール
(1)
映像・サウンド
(11)
生活品質
(20)
開発環境
(15)
OS関係
(41)
最新の20件
2020-09-01
OS関係/Linux/サーバの初期設定
2020-05-24
サーバー関係/ルータ
2020-04-30
WEBサービス/Amazon Cloud(AWS)
2020-04-16
サーバー関係/Mail/Dovecot
サーバー関係/Mail/Postfix
2020-03-25
OS関係/MacOSX/Catalina
2020-03-23
OS関係/MacOSX
2020-03-12
OS関係/Linux/Alpine
2020-03-11
サーバー関係/DNS/Unbound
パソコン・機材/Yamaha_RX830
RecentDeleted
サーバー関係/AppServer
サーバー関係/WEB
サーバー関係/Mail
サーバー関係/デーモン登録
サーバー関係/DNS
サーバー関係/djbdnsの設定
2020-03-09
OS関係/Linux/Centos8
仮想化技術/Docker
2020-03-07
セキュリティ/SSH
MenuBar Edit
Total:0/Today:0
開始行:
#contents
*Dockerとは。 [#yf53a7ab]
%%Dockerはソフトウェアコンテナ内のアプリケーションのデプ...
すでに Docker の位置づけは変わってきている。基礎となる部...
[[公式ページ:https://www.docker.com/]]
*他の仮想化との違い [#gafdc677]
他の仮想化との大きな違いは、厳密にはハード(xen,kvm)など...
&color(red){<特に注意するべき点>&br;dockerは環境をソー...
ようするに、コマンドを実行するたびに、コンテナを作成して...
もちろん、最初のコンテナ作成時にシェルを指定して、通常の...
*インストール [#u1c7025b]
ここでは、Centos7 をベースとする。基本は yum で下記のよう...
# yum install docker
<起動>
# systemctl enable docker
# systemctl start docker
<確認>
# docker info
*コンテナイメージの作成について [#m07d5c9e]
コンテナイメージの作成は、Dockerfile に記述し、それをビル...
**Dockerfileについて [#ef90b2d5]
このファイルでは、下記の指定ができる。
|命令|用途|h
|FROM|元となるDockerイメージの指定|
|MAINTAINER|作成者の情報|
|RUN|コマンドの実行|
|ADD|ファイル/ディレクトリの追加|
|CMD|コンテナーの実行コマンド|
|ENTRYPOINT|コンテナーの実行コマンド|
|WORKDIR|作業ディレクトリの指定|
|ENV|環境変数の指定|
|USER|実行ユーザーの指定|
|EXPOSE|ポートのエクスポート|
|VOLUME|ボリュームのマウント|
<例>
# vi Dockerfile
FROM centos:latest <- 元イメージ必須。
RUN yum install -y wget
**ビルド [#yc6b8511]
# docker build -t <イメージファイル名> ./ <- 最後の...
<ビルドの確認>
#docker images
**コンテナイメージの操作 [#rf23b881]
<イメージ削除>
# docker rmi <イメージファイル名>
※<イメージファイル名>は、ユーザー名/イメージファイル名 ...
*リポジトリーからのイメージ取得 [#oa502be1]
docker hubからすでに作成済みのdocker コンテナイメージをダ...
# docker pull <イメージファイル名>:<tag>
基本的にはイメージファイル名は、投稿したユーザー名/イメー...
<ダウンロードしたコンテナイメージの一覧表示>
# docker images
*コンテナの実行 [#z62d3275]
通常の仮想化のように、利用するのであれば、centos などコン...
# docker pull centos:latest
# docker run -it --name centos_image01 centos:latest /bi...
イメージIDでも良い。d オプションはデタッチモード。コンテ...
# docker run -itd <image id> /bin/sh
これで、centos:latest というコンテナイメージから、centos_...
参考までに Docker hub に登録されているイメージの情報を取...
# docker search <キーワード>
***ホストのドライブをコンテナに割り振り [#ga199b17]
オプション -v <ホストのフォルダ位置>:<コンテナのフォルダ...
<例>
# docker run -it -v /usr/local/src:/src centos /bin/sh
ただしこの場合、read-only となる。書き込みを許可する場合...
# docker run --privileged -it -v /usr/local/src:/src cen...
***ホストのポートを、コンテナのポートに割り当て [#k00c829d]
オプション -p host_port:conteiner_port
<例>
# docker run -it -p 8080:80 centos /bin/sh
***現在実行中+停止中のコンテナ一覧 [#qa856ca6]
# docker ps -a (-a を指定しないと実行中のみ、-q ...
***現在実行中のコンテナでコマンド実行 [#y46a4ec4]
# docker exec -it centos_image01 /bin/sh
※停止中のコンテナは、すでにコンテナとして実行終了している...
*コンテナの操作 [#f086e300]
<一時停止(StatusがUpのものだけ)>
# docker pause <コンテナ名>
<一時停止の解除(STATUSが pauseのものだけ)>
# docker unpause <コンテナ名>
<コンテナの停止(shutdown:StatusがUpのものだけ)>
# docker stop <コンテナ名>
<コンテナの再起動(Statusが、Exited (-1)のものだけ)>
# docker restart <コンテナ名>
<コンテナの削除>
# docker rm <コンテナ名>
<コンテナの全削除>
# docker rm $(docker ps -aq)
<dockerイメージの削除> ※docker images で確認できる
# docker rmi <IMAGE ID>
<ログ表示>
# docker logs <コンテナ名>
<起動中のコンテナのコンソールに接続> 上記の exec の方が...
# docker attach <コンテナ名>
&color(red){※注意:現在のコンソールと、コンテナのコンソー...
<コンテナの詳細表示>
# docker inspect <コンテナ名>
<docker networkの状態>
# docker network ls
*コンテナイメージの作成 [#qcb8c330]
<コンテナからコンテナイメージの作成>
# docker commit <コンテナ名> <ユーザー名/イメージファイ...
※上記にあるように、ユーザー名/ をイメージファイル名の頭に...
<コンテナイメージをdockerサイトのリポジトリに登録>
# docker push <ユーザー名/イメージファイル名>
※公開されてしまうので、pushは十分に注意の上実行
*Dockerfileのチェッカー [#k072a4d4]
# curl -L -O https://github.com/hadolint/hadolint/releas...
# mv hadolint-Linux-x86_64 hadolint
# chmod +x hadolint
これでチェック可能
# hadolint ./Dockerfile
*docker-compose の導入 [#pfebae0d]
***docker-compose.yml 作成の注意点 [#k9135fd5]
<ADD,COPY ではホスト側のフォルダ指定に絶対パスを指定して...
ADD /usr/docker/containers/xxxx.txt /var/www/html/xx...
&color(red){これはコピーされずにエラーになる。};
<また相対パスでも ADDやCOPYの場合は、Dockerfile のあるフ...
ADD ../test2/test.txt /usr/test.txt <- このよう...
そのため、docker-compose.yml の build指定 で context の...
# vi docker-compose.yml
version: '3'
services:
web: build:
context: . <-...
dockerfile: ./web/Dockerfile <-- Dockerfile は...
....
***docker-compose コマンド [#sb5cfc15]
カレントフォルダにある docker-compose.yml を実行する。(...
# docker-compose up
&color(red){※consoleがlog表示モードになって操作できなくな...
デーモンオプションをつけてバックグランドで起動する。
# docker-compose up -d
実行にあわせてビルドも一緒に行う
# docker-compose up -d --build
Logの最新20行を表示
# docker-compose logs --tail="20" -t
停止&削除(コンテナ・ネットワーク)※docker ps から消える
# docker-compose down
停止&削除(コンテナ・ネットワーク・イメージ)※ビルドされ...
# docker-compose down --rmi all <- allの代わり...
停止&削除(コンテナ・ネットワーク・ボリューム)
# docker-compose down --rmi all --volumes
**howto [#d4f5f0f5]
*** Unsupported config option for services: ‘xxx’ という...
docker-compose.yml に version: '3' が漏れている。
終了行:
#contents
*Dockerとは。 [#yf53a7ab]
%%Dockerはソフトウェアコンテナ内のアプリケーションのデプ...
すでに Docker の位置づけは変わってきている。基礎となる部...
[[公式ページ:https://www.docker.com/]]
*他の仮想化との違い [#gafdc677]
他の仮想化との大きな違いは、厳密にはハード(xen,kvm)など...
&color(red){<特に注意するべき点>&br;dockerは環境をソー...
ようするに、コマンドを実行するたびに、コンテナを作成して...
もちろん、最初のコンテナ作成時にシェルを指定して、通常の...
*インストール [#u1c7025b]
ここでは、Centos7 をベースとする。基本は yum で下記のよう...
# yum install docker
<起動>
# systemctl enable docker
# systemctl start docker
<確認>
# docker info
*コンテナイメージの作成について [#m07d5c9e]
コンテナイメージの作成は、Dockerfile に記述し、それをビル...
**Dockerfileについて [#ef90b2d5]
このファイルでは、下記の指定ができる。
|命令|用途|h
|FROM|元となるDockerイメージの指定|
|MAINTAINER|作成者の情報|
|RUN|コマンドの実行|
|ADD|ファイル/ディレクトリの追加|
|CMD|コンテナーの実行コマンド|
|ENTRYPOINT|コンテナーの実行コマンド|
|WORKDIR|作業ディレクトリの指定|
|ENV|環境変数の指定|
|USER|実行ユーザーの指定|
|EXPOSE|ポートのエクスポート|
|VOLUME|ボリュームのマウント|
<例>
# vi Dockerfile
FROM centos:latest <- 元イメージ必須。
RUN yum install -y wget
**ビルド [#yc6b8511]
# docker build -t <イメージファイル名> ./ <- 最後の...
<ビルドの確認>
#docker images
**コンテナイメージの操作 [#rf23b881]
<イメージ削除>
# docker rmi <イメージファイル名>
※<イメージファイル名>は、ユーザー名/イメージファイル名 ...
*リポジトリーからのイメージ取得 [#oa502be1]
docker hubからすでに作成済みのdocker コンテナイメージをダ...
# docker pull <イメージファイル名>:<tag>
基本的にはイメージファイル名は、投稿したユーザー名/イメー...
<ダウンロードしたコンテナイメージの一覧表示>
# docker images
*コンテナの実行 [#z62d3275]
通常の仮想化のように、利用するのであれば、centos などコン...
# docker pull centos:latest
# docker run -it --name centos_image01 centos:latest /bi...
イメージIDでも良い。d オプションはデタッチモード。コンテ...
# docker run -itd <image id> /bin/sh
これで、centos:latest というコンテナイメージから、centos_...
参考までに Docker hub に登録されているイメージの情報を取...
# docker search <キーワード>
***ホストのドライブをコンテナに割り振り [#ga199b17]
オプション -v <ホストのフォルダ位置>:<コンテナのフォルダ...
<例>
# docker run -it -v /usr/local/src:/src centos /bin/sh
ただしこの場合、read-only となる。書き込みを許可する場合...
# docker run --privileged -it -v /usr/local/src:/src cen...
***ホストのポートを、コンテナのポートに割り当て [#k00c829d]
オプション -p host_port:conteiner_port
<例>
# docker run -it -p 8080:80 centos /bin/sh
***現在実行中+停止中のコンテナ一覧 [#qa856ca6]
# docker ps -a (-a を指定しないと実行中のみ、-q ...
***現在実行中のコンテナでコマンド実行 [#y46a4ec4]
# docker exec -it centos_image01 /bin/sh
※停止中のコンテナは、すでにコンテナとして実行終了している...
*コンテナの操作 [#f086e300]
<一時停止(StatusがUpのものだけ)>
# docker pause <コンテナ名>
<一時停止の解除(STATUSが pauseのものだけ)>
# docker unpause <コンテナ名>
<コンテナの停止(shutdown:StatusがUpのものだけ)>
# docker stop <コンテナ名>
<コンテナの再起動(Statusが、Exited (-1)のものだけ)>
# docker restart <コンテナ名>
<コンテナの削除>
# docker rm <コンテナ名>
<コンテナの全削除>
# docker rm $(docker ps -aq)
<dockerイメージの削除> ※docker images で確認できる
# docker rmi <IMAGE ID>
<ログ表示>
# docker logs <コンテナ名>
<起動中のコンテナのコンソールに接続> 上記の exec の方が...
# docker attach <コンテナ名>
&color(red){※注意:現在のコンソールと、コンテナのコンソー...
<コンテナの詳細表示>
# docker inspect <コンテナ名>
<docker networkの状態>
# docker network ls
*コンテナイメージの作成 [#qcb8c330]
<コンテナからコンテナイメージの作成>
# docker commit <コンテナ名> <ユーザー名/イメージファイ...
※上記にあるように、ユーザー名/ をイメージファイル名の頭に...
<コンテナイメージをdockerサイトのリポジトリに登録>
# docker push <ユーザー名/イメージファイル名>
※公開されてしまうので、pushは十分に注意の上実行
*Dockerfileのチェッカー [#k072a4d4]
# curl -L -O https://github.com/hadolint/hadolint/releas...
# mv hadolint-Linux-x86_64 hadolint
# chmod +x hadolint
これでチェック可能
# hadolint ./Dockerfile
*docker-compose の導入 [#pfebae0d]
***docker-compose.yml 作成の注意点 [#k9135fd5]
<ADD,COPY ではホスト側のフォルダ指定に絶対パスを指定して...
ADD /usr/docker/containers/xxxx.txt /var/www/html/xx...
&color(red){これはコピーされずにエラーになる。};
<また相対パスでも ADDやCOPYの場合は、Dockerfile のあるフ...
ADD ../test2/test.txt /usr/test.txt <- このよう...
そのため、docker-compose.yml の build指定 で context の...
# vi docker-compose.yml
version: '3'
services:
web: build:
context: . <-...
dockerfile: ./web/Dockerfile <-- Dockerfile は...
....
***docker-compose コマンド [#sb5cfc15]
カレントフォルダにある docker-compose.yml を実行する。(...
# docker-compose up
&color(red){※consoleがlog表示モードになって操作できなくな...
デーモンオプションをつけてバックグランドで起動する。
# docker-compose up -d
実行にあわせてビルドも一緒に行う
# docker-compose up -d --build
Logの最新20行を表示
# docker-compose logs --tail="20" -t
停止&削除(コンテナ・ネットワーク)※docker ps から消える
# docker-compose down
停止&削除(コンテナ・ネットワーク・イメージ)※ビルドされ...
# docker-compose down --rmi all <- allの代わり...
停止&削除(コンテナ・ネットワーク・ボリューム)
# docker-compose down --rmi all --volumes
**howto [#d4f5f0f5]
*** Unsupported config option for services: ‘xxx’ という...
docker-compose.yml に version: '3' が漏れている。
ページ名: