#author("2020-02-27T23:34:44+00:00","default:wikiadmin","wikiadmin")
#author("2020-02-29T19:30:17+00:00","default:wikiadmin","wikiadmin")
-Dockerやってみよう

#contents

*調査 [#f4667bf8]

https://spring.io/guides/gs/spring-boot-docker/

*はまりどころ [#a520a2d6]

-ローカルポートマッピングしないとアクセスできない


*コマンド [#obbee8d3]

|docker stat|コンテナ状態確認|
|docker exec -it コンテナ名 /bin/bash|入る|

*インストール [#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を操作する。仮想マシンのIPはデフォルト192.168.99.100になる。アクセスする場合もこのIPを利用する。

 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`/jenkins_home: /var/jenkins_home -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts

/tmpとかじゃないとエラーが出る!

*Docker composer [#k86c8003]

|設定を確認|docker-compose config|
|pull|docker-compose pull|
|ビルド|docker-compose build|
|全部まとめて再起動|docker-compose restart|
|全部まとめて実施|docker-compose up -d|
|全部まとめてログ表示|docker-compose logs|
|作成されたdockerイメージの確認|docker-compose images|
|Multi stage build|中間成果物を無くして、イメージスリム化|

**nginxをローカルボリュームにマウントする [#p5bcb032]

https://takatorix.hatenablog.com/entry/2017/04/27/012516

*用語集 [#tffa9306]

|Docker Hub|PUBLICに公開されているDockerイメージリポジトリ|
|Docker repository|公開できないのであればPrivateリポジトリを立てる。AWSなどではAmazon ECRとして提供されている。コンテナでもregistryで提供されている|
|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/bash||
|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:50000 -v /var/tmp:/var/jenkins_home jenkins||
|Solr4 ボリュームマウント|docker run     -p 127.0.0.1:8983:8983     -v /var/tmp:/etc/opt/solr/cores/your-awesome-core:ro     2degrees/solr4|http://localhost:8983/solr/#/|

**MySQL [#u38b30c3]

 docker pull mysql
 docker run --name mysql -e MYSQL_ROOT_PASSWORD=mysql -d -p 3306:3306 mysql
 #停止して削除
 docker stop mysql
 docker rm mysql

-削除しないと以下のエラー
Error response from daemon: Conflict. The name "mysql" is already in use by container 2b37289bb606. You have to remove (or rename) that container to be able to reuse that name.


-接続するには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 eugeneware/docker-wordpress-nginx

*ファイルシステムへの保存 [#x66cc831]

docker export でtarファイルへ
docker importでtarファイルからdockerイメージへ


*ツール [#u2310ef7]

**Docker for Mac and Windows [#x9b1ab6a]

2016/03現在ベータ版だが、ネイティブでDockerを動かせるというもの。Hyper-Vを利用しているためWindows10以降

**Docker toolbox [#b4dd7743]

VirtualBox経由のDockerを操作するがそれをひとまとめにしてくれているツール。

**CentOS6(非推奨) [#haab25f4]

 yum install docker-io

*起動してみる [#c7f820ad]
 
 systemctl start docker
 Error starting daemon: Error initializing network controller: Error creating default \"bridge\" "network: package not installed"とでて失敗。OpenVZには入れられないということで終了!

*基本操作 [#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: you are not authorized to perform this operation: server returned 401.. [#s21b87b1]

DockerImageTrustを有効にしている場合、自作のイメージは署名なしでは実行できない。
export DOCKER_CONTENT_TRUST=0で解消。


*さくらのVPSにインストール [#z332ceea]

*Azureの仮想マシンにインストール [#s05af2b0]



*Oracle on Docker [#o02464a7]

https://github.com/oracle/docker-images


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS