調査

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

はまりどころ

コマンド

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

インストール

Docker build

デフォルトのファイル名なら-f不要。-tでイメージ名 ./そこにあるパスから指定されたファイルを探すと言うもの

docker build -f Dockerfile-xxx -t mydocker ./
docker run mydocker

Docker toolbox

若干時代遅れ感があるが、Windows10以外の場合はこれしかない。仮想マシンを介してDockerを操作する。仮想マシンのIPはデフォルト192.168.99.100になる。アクセスする場合もこのIPを利用する。

docker run -d --name httpd -p 80:80 httpd 

kitematic

GUIツールだが、最近の情報がないのであまり使われてない印象。

ミドルウェアを使ってみる

Jenkins

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

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

nginxをローカルボリュームにマウントする

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

用語集

Docker HubPUBLICに公開されているDockerイメージリポジトリ
Docker repository公開できないのであればPrivateリポジトリを立てる。AWSなどではAmazon ECRとして提供されている。コンテナでもregistryで提供されている
DockerfileDockerコンテナーの構成とDockerイメージの作成を一括で行う。イメージ上でコマンドを実施したりできる
Volume Container永続データを配置したいときに利用する

いろいろ試してみる

共通手順

  1. docker pull イメージ名
  2. docker run オプション イメージ名

オプション

デーモン起動-d
ホストのボリュームマウント-v /var/tmp:/var/www/html
ポート-p 8080:80
環境変数-e foo=var

Dockerの内部にbashで接続

docker exec -it コンテナID bash

そのほかにもport, top,などがある。

様々なミドルウェアを試してみた

軽くやってみるdocker run -it --name "test" centos /bin/bash
httpdを8080でデーモン起動docker run -d -p 8080:80 httpd
jenkinsdocker 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/solr4http://localhost:8983/solr/#/

MySQL

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

Wordpress/Nginx

docker pull eugeneware/docker-wordpress-nginx
docker run -p 80:80 --name docker-wordpress-nginx -d eugeneware/docker-wordpress-nginx

ファイルシステムへの保存

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

ツール

Docker for Mac and Windows

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

Docker toolbox

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

CentOS6(非推奨)

yum install docker-io

起動してみる

systemctl start docker
Error starting daemon: Error initializing network controller: Error creating default \"bridge\" "network: package not installed"とでて失敗。OpenVZには入れられないということで終了!

基本操作

docker search キーワードDocker Hubからイメージ検索
docker pull centoscentosイメージを持ってくる
docker images今ローカルにあるイメージ一覧
docker ps動いているDockerプロセス
ctrl+p,ctrl+q抜ける
docker attach [CONTAINER ID]再びアタッチ

試しにやってみる

docker run hello-world表示するだけ
docker run -d -P --name web nginxweb

トラブルシューティング

docker: you are not authorized to perform this operation: server returned 401..

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

さくらのVPSにインストール

Azureの仮想マシンにインストール

Oracle on Docker

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


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