Dockerセットアップ 第6弾
docker-knowledgeの書き込み先をPostgresに変更
1.完成形のdocker-compose.ymlファイルの内容を確認
- 以下の
docker-compose.yml
を元に準備する。
version: '3' #swarm-mode対応http://docs.docker.jp/engine/swarm/index.html services: app: image: koda/docker-knowledge:latest #コンテナ名を明示的に指定する container_name: docker-knowledge volumes: - /usr/local/etc/knowledge/webapps:/usr/local/tomcat/webapps ports: - 8080:8080 restart: always tty: true #dbが起動してからappが起動する. depends_on: - db proxy: image: nginx:latest #コンテナ名を明示的に指定する container_name: reverse-proxy volumes: - /usr/local/etc/knowledge/html:/usr/share/nginx/html - /usr/local/etc/knowledge/nginx/conf.d/:/etc/nginx/conf.d ports: - 80:80 restart: always tty: true db: image: postgres:latest #コンテナ名を明示的に指定する container_name: postgres #コンテナの環境変数を追加する。 #build オプションと合わせて指定すると、build中は enviroment で指定した #環境変数は見えないことに注意。 #build に変数を渡す場合は args オプションで指定する。 environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=admin123 - POSTGRES_DB=docker_knowledge volumes: - /usr/local/etc/knowledge/postgres/data:/var/lib/postgresql/data restart: always tty: true
2.postgresの環境設定
- environmentを用いて環境変数を設定する。
下記のdocker-hubのEnvironment Variablesを参照 docker-hub postgres
environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=admin123 - POSTGRES_DB=docker_knowledge
3.postgresのデータ保存先をマウント設定
environmentを用いて環境変数を設定する。
1.ホストに
postgres
のフォルダを作成
#nginxフォルダを作成 mkdir /usr/local/etc/knowledge/postgres
+ 2.docker-composeのdocker-compose.yml
のdb
のvolumes
を以下のように設定しマウントさせる。
volumes: - /usr/local/etc/knowledge/postgres/data:/var/lib/postgresql/data
- 3.上記1から2を行い、コンテナ再起動を行うと設定が反映される
docker-compose -f [ymlファイル名] up -d
Dockerの起動後のログ確認について
以下のような時にログが見たい場合のコマンドです。
- docker起動後にエラーで起動できない時
- 起動しても画面が表示出来ない。
- 起動後の動作確認を行いたい。
sudo docker logs -t <dockerID or dockerName> #ログ確認コマンド:例 sudo docker logs -t postgres