Docker
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
-Dockerやってみよう
#contents
*起動オプション調査 [#a7adba49]
sudo systemctl show docker
*Spring boot Docker [#zeebb55c]
git clone https://github.com/spring-guides/gs-spring-boo...
cd gs-spring-boot-docker/complete
mvn package
#mvn
mkdir -p target/dependency && (cd target/dependency; jar...
# gradle
mkdir -p build/dependency && (cd build/dependency; jar -...
docker build -t springio_xxx .
docker run -p 8080:8080 -t springio_xxx
*Dockerfile [#g721aeb5]
|ARG|シェル環境変数をそのまま引き継げるようだ|
|ENV|Dockerに渡す環境変数|
|WORKDIR|Docker内部での作業ディレクトリ、なかったら作成し...
|ADD|COPYのほうが良いので非推奨|
|COPY|ローカル Dockerでコピーする。キャッシュがきくので. ...
*リソース制限 [#pbe8b68e]
**CPU [#n0ee80f6]
--cpusをつけることにより制限可能。1を指定すると物理CPU一...
***実験結果 [#k9001a8a]
-DBはもともとスカスカなので0.1でも問題なし
-Sonarqubeは重いので0.1だと起動すらしない(諦めた)。0.5に...
-docker statsで見るとCPU使用率が0.1だと10%程度,0.5だと50%...
*はまりどころ [#a520a2d6]
-ローカルポートマッピングしないとアクセスできない。ローカ...
33306:3306
${HOME}/.aws/credentials:/home/spring/.aws/credentials:ro
*コマンド [#obbee8d3]
|docker stat|コンテナ状態確認|
|docker exec -it コンテナ名 /bin/bash|入る|
|全コンテナ停止|docker stop $(docker ps -q)|
|全コンテナ削除|docker rm $(docker ps -q -a)|
|停止済みコンテナ削除|docker container prune|
|全イメージ削除|docker rmi $(docker images -q)|
*インストール [#q4f8be84]
-Windows,MacであればDocker toolboxを使うべし
-CentOS7であればyum install dockerでOK
-Macはbrew cast install docker
**Docker build [#fe8774c2]
デフォルトのファイル名なら-f不要。-tでイメージ名 ./そこに...
docker build -f Dockerfile-xxx -t mydocker ./
docker run mydocker
**Docker toolbox [#p08ffa98]
若干時代遅れ感があるが、Windows10以外の場合はこれしかない...
docker run -d --name httpd -p 80:80 httpd
**kitematic [#h374fea5]
GUIツールだが、最近の情報がないのであまり使われてない印象。
*ミドルウェアを使ってみる [#za418117]
**Jenkins [#h49c13f9]
docker pull jenkins/jenkins:lts
cd /tmp
tfujiinoMacBook-Pro:tmp t_fujii$ docker run -d -v `pwd`/j...
/tmpとかじゃないとエラーが出る!
*Docker volume [#u8b74a62]
実態はホストの/var/lib/docker/volumes/ボリューム名にある...
docker run -it --privileged --pid=host debian nsenter -t...
ボリュームはコンテナ停止中だと削除できないので、docker rm...
**コマンド一覧 [#bebcc536]
|ボリューム使用率 概要|docker system df|
|ボリューム使用率 詳細|docker system df -v|
|ボリューム一覧|docker volume ls|
|未使用のボリューム削除|docker volume prune|
**Volume copy [#t9f0e9d5]
新しいボリューム(new_volume)を作成して、古いもの(old_volu...
docker volume create --name new_volume
-コピー内容を見なくていいならvオプションを抜く
docker container run --rm -it -v old_volume:/from -v new...
*Docker compose [#k86c8003]
downでコンテナ削除。volumeを定義してなかったらそれごと削...
名前を変更する場合などに柔軟性を持たせるために、volumeは...
|設定を確認|docker-compose config|
|pull|docker-compose pull|
|ビルド|docker-compose build|
|全部まとめて再起動|docker-compose restart|
|個別に再起動|docker-compose restart サービス名|
|全部まとめて実施|docker-compose up -d|
|全部まとめてログ表示|docker-compose logs|
|作成されたdockerイメージの確認|docker-compose images|
|Multi stage build|中間成果物を無くして、イメージスリム化...
**バージョンアップ [#fda2532d]
バイナリをダウンロードして古いバイナリを置き換える!
sudo curl -L https://github.com/docker/compose/releases/...
sudo chmod +x /usr/local/bin/docker-compose
**nginxをローカルボリュームにマウントする [#p5bcb032]
https://takatorix.hatenablog.com/entry/2017/04/27/012516
*用語集 [#tffa9306]
|Docker Hub|PUBLICに公開されているDockerイメージリポジトリ|
|Docker repository|公開できないのであればPrivateリポジト...
|Dockerfile|Dockerコンテナーの構成とDockerイメージの作成...
|Volume Container|永続データを配置したいときに利用する|
*いろいろ試してみる [#s60bcbdd]
**共通手順 [#ncc3e451]
+docker pull イメージ名
+docker run オプション イメージ名
**オプション [#bb4e7d07]
|デーモン起動|-d|
|ホストのボリュームマウント |-v /var/tmp:/var/www/html|
|ポート|-p 8080:80|
|環境変数|-e foo=var|
**Dockerの内部にbashで接続 [#i619e230]
docker exec -it コンテナID bash
そのほかにもport, top,などがある。
***様々なミドルウェアを試してみた [#s7918881]
|軽くやってみる|docker run -it --name "test" centos /bin/...
|httpdを8080でデーモン起動|docker run -d -p 8080:80 httpd||
|jenkins|docker run -p 8080:8080 -p 50000:50000 jenkins||
|jenkins外部ボリューム|docker run -p 8080:8080 -p 50000:5...
|Solr4 ボリュームマウント|docker run -p 127.0.0.1:898...
**MySQL [#u38b30c3]
docker pull mysql
docker run --name mysql -e MYSQL_ROOT_PASSWORD=mysql -d ...
#停止して削除
docker stop mysql
docker rm mysql
-削除しないと以下のエラー
Error response from daemon: Conflict. The name "mysql" is...
-接続するにはDockerマシンのIPに対して
mysql -u root -pmysql
**Wordpress/Nginx [#o8e89459]
docker pull eugeneware/docker-wordpress-nginx
docker run -p 80:80 --name docker-wordpress-nginx -d eug...
*ファイルシステムへの保存 [#x66cc831]
docker export でtarファイルへ
docker importでtarファイルからdockerイメージへ
*ツール [#u2310ef7]
**Docker for Mac and Windows [#x9b1ab6a]
2016/03現在ベータ版だが、ネイティブでDockerを動かせるとい...
**Docker toolbox [#b4dd7743]
VirtualBox経由のDockerを操作するがそれをひとまとめにして...
**CentOS6(非推奨) [#haab25f4]
yum install docker-io
*起動してみる [#c7f820ad]
systemctl start docker
Error starting daemon: Error initializing network contro...
*基本操作 [#q14e67c8]
|docker search キーワード|Docker Hubからイメージ検索|
|docker pull centos|centosイメージを持ってくる|
|docker images|今ローカルにあるイメージ一覧|
|docker ps|動いているDockerプロセス|
|ctrl+p,ctrl+q|抜ける|
|docker attach [CONTAINER ID]|再びアタッチ|
**試しにやってみる [#o47dd014]
|docker run hello-world|表示するだけ|
|docker run -d -P --name web nginx|web|
*トラブルシューティング [#gcca1968]
**dockerのphpアプリからhostのDB接続 [#bda0ebe6]
|Driverがない|Dockerbuildファイルでインストール|
|SQLSTATE[HY000][2002] No such file or directory|localhos...
**docker: you are not authorized to perform this operatio...
DockerImageTrustを有効にしている場合、自作のイメージは署...
export DOCKER_CONTENT_TRUST=0で解消。
*さくらのVPSにインストール [#z332ceea]
*Azureの仮想マシンにインストール [#s05af2b0]
*Oracle on Docker [#o02464a7]
https://github.com/oracle/docker-images
終了行:
-Dockerやってみよう
#contents
*起動オプション調査 [#a7adba49]
sudo systemctl show docker
*Spring boot Docker [#zeebb55c]
git clone https://github.com/spring-guides/gs-spring-boo...
cd gs-spring-boot-docker/complete
mvn package
#mvn
mkdir -p target/dependency && (cd target/dependency; jar...
# gradle
mkdir -p build/dependency && (cd build/dependency; jar -...
docker build -t springio_xxx .
docker run -p 8080:8080 -t springio_xxx
*Dockerfile [#g721aeb5]
|ARG|シェル環境変数をそのまま引き継げるようだ|
|ENV|Dockerに渡す環境変数|
|WORKDIR|Docker内部での作業ディレクトリ、なかったら作成し...
|ADD|COPYのほうが良いので非推奨|
|COPY|ローカル Dockerでコピーする。キャッシュがきくので. ...
*リソース制限 [#pbe8b68e]
**CPU [#n0ee80f6]
--cpusをつけることにより制限可能。1を指定すると物理CPU一...
***実験結果 [#k9001a8a]
-DBはもともとスカスカなので0.1でも問題なし
-Sonarqubeは重いので0.1だと起動すらしない(諦めた)。0.5に...
-docker statsで見るとCPU使用率が0.1だと10%程度,0.5だと50%...
*はまりどころ [#a520a2d6]
-ローカルポートマッピングしないとアクセスできない。ローカ...
33306:3306
${HOME}/.aws/credentials:/home/spring/.aws/credentials:ro
*コマンド [#obbee8d3]
|docker stat|コンテナ状態確認|
|docker exec -it コンテナ名 /bin/bash|入る|
|全コンテナ停止|docker stop $(docker ps -q)|
|全コンテナ削除|docker rm $(docker ps -q -a)|
|停止済みコンテナ削除|docker container prune|
|全イメージ削除|docker rmi $(docker images -q)|
*インストール [#q4f8be84]
-Windows,MacであればDocker toolboxを使うべし
-CentOS7であればyum install dockerでOK
-Macはbrew cast install docker
**Docker build [#fe8774c2]
デフォルトのファイル名なら-f不要。-tでイメージ名 ./そこに...
docker build -f Dockerfile-xxx -t mydocker ./
docker run mydocker
**Docker toolbox [#p08ffa98]
若干時代遅れ感があるが、Windows10以外の場合はこれしかない...
docker run -d --name httpd -p 80:80 httpd
**kitematic [#h374fea5]
GUIツールだが、最近の情報がないのであまり使われてない印象。
*ミドルウェアを使ってみる [#za418117]
**Jenkins [#h49c13f9]
docker pull jenkins/jenkins:lts
cd /tmp
tfujiinoMacBook-Pro:tmp t_fujii$ docker run -d -v `pwd`/j...
/tmpとかじゃないとエラーが出る!
*Docker volume [#u8b74a62]
実態はホストの/var/lib/docker/volumes/ボリューム名にある...
docker run -it --privileged --pid=host debian nsenter -t...
ボリュームはコンテナ停止中だと削除できないので、docker rm...
**コマンド一覧 [#bebcc536]
|ボリューム使用率 概要|docker system df|
|ボリューム使用率 詳細|docker system df -v|
|ボリューム一覧|docker volume ls|
|未使用のボリューム削除|docker volume prune|
**Volume copy [#t9f0e9d5]
新しいボリューム(new_volume)を作成して、古いもの(old_volu...
docker volume create --name new_volume
-コピー内容を見なくていいならvオプションを抜く
docker container run --rm -it -v old_volume:/from -v new...
*Docker compose [#k86c8003]
downでコンテナ削除。volumeを定義してなかったらそれごと削...
名前を変更する場合などに柔軟性を持たせるために、volumeは...
|設定を確認|docker-compose config|
|pull|docker-compose pull|
|ビルド|docker-compose build|
|全部まとめて再起動|docker-compose restart|
|個別に再起動|docker-compose restart サービス名|
|全部まとめて実施|docker-compose up -d|
|全部まとめてログ表示|docker-compose logs|
|作成されたdockerイメージの確認|docker-compose images|
|Multi stage build|中間成果物を無くして、イメージスリム化...
**バージョンアップ [#fda2532d]
バイナリをダウンロードして古いバイナリを置き換える!
sudo curl -L https://github.com/docker/compose/releases/...
sudo chmod +x /usr/local/bin/docker-compose
**nginxをローカルボリュームにマウントする [#p5bcb032]
https://takatorix.hatenablog.com/entry/2017/04/27/012516
*用語集 [#tffa9306]
|Docker Hub|PUBLICに公開されているDockerイメージリポジトリ|
|Docker repository|公開できないのであればPrivateリポジト...
|Dockerfile|Dockerコンテナーの構成とDockerイメージの作成...
|Volume Container|永続データを配置したいときに利用する|
*いろいろ試してみる [#s60bcbdd]
**共通手順 [#ncc3e451]
+docker pull イメージ名
+docker run オプション イメージ名
**オプション [#bb4e7d07]
|デーモン起動|-d|
|ホストのボリュームマウント |-v /var/tmp:/var/www/html|
|ポート|-p 8080:80|
|環境変数|-e foo=var|
**Dockerの内部にbashで接続 [#i619e230]
docker exec -it コンテナID bash
そのほかにもport, top,などがある。
***様々なミドルウェアを試してみた [#s7918881]
|軽くやってみる|docker run -it --name "test" centos /bin/...
|httpdを8080でデーモン起動|docker run -d -p 8080:80 httpd||
|jenkins|docker run -p 8080:8080 -p 50000:50000 jenkins||
|jenkins外部ボリューム|docker run -p 8080:8080 -p 50000:5...
|Solr4 ボリュームマウント|docker run -p 127.0.0.1:898...
**MySQL [#u38b30c3]
docker pull mysql
docker run --name mysql -e MYSQL_ROOT_PASSWORD=mysql -d ...
#停止して削除
docker stop mysql
docker rm mysql
-削除しないと以下のエラー
Error response from daemon: Conflict. The name "mysql" is...
-接続するにはDockerマシンのIPに対して
mysql -u root -pmysql
**Wordpress/Nginx [#o8e89459]
docker pull eugeneware/docker-wordpress-nginx
docker run -p 80:80 --name docker-wordpress-nginx -d eug...
*ファイルシステムへの保存 [#x66cc831]
docker export でtarファイルへ
docker importでtarファイルからdockerイメージへ
*ツール [#u2310ef7]
**Docker for Mac and Windows [#x9b1ab6a]
2016/03現在ベータ版だが、ネイティブでDockerを動かせるとい...
**Docker toolbox [#b4dd7743]
VirtualBox経由のDockerを操作するがそれをひとまとめにして...
**CentOS6(非推奨) [#haab25f4]
yum install docker-io
*起動してみる [#c7f820ad]
systemctl start docker
Error starting daemon: Error initializing network contro...
*基本操作 [#q14e67c8]
|docker search キーワード|Docker Hubからイメージ検索|
|docker pull centos|centosイメージを持ってくる|
|docker images|今ローカルにあるイメージ一覧|
|docker ps|動いているDockerプロセス|
|ctrl+p,ctrl+q|抜ける|
|docker attach [CONTAINER ID]|再びアタッチ|
**試しにやってみる [#o47dd014]
|docker run hello-world|表示するだけ|
|docker run -d -P --name web nginx|web|
*トラブルシューティング [#gcca1968]
**dockerのphpアプリからhostのDB接続 [#bda0ebe6]
|Driverがない|Dockerbuildファイルでインストール|
|SQLSTATE[HY000][2002] No such file or directory|localhos...
**docker: you are not authorized to perform this operatio...
DockerImageTrustを有効にしている場合、自作のイメージは署...
export DOCKER_CONTENT_TRUST=0で解消。
*さくらのVPSにインストール [#z332ceea]
*Azureの仮想マシンにインストール [#s05af2b0]
*Oracle on Docker [#o02464a7]
https://github.com/oracle/docker-images
ページ名: