LoginSignup
49
24

More than 5 years have passed since last update.

dockerでプロジェクト名を指定する

Last updated at Posted at 2018-01-07

概要

docker-compose.ymlを使ってコンテナを起動するとフォルダ名が初期値としてプロジェクト名となってしまい、フォルダ名を変えた場合に、プロジェクト名が勝手に変わってしまう。

そのため、どこで起動しても同じプロジェクト名にしたいとパラメータを調べた結果をメモしておく。

docker-composeの場合

下記サイトを参考に、環境変数をセットする必要があるようです。

ターミナル
$ export COMPOSE_PROJECT_NAME=web && \
  docker-compose up -d

※「COMPOSE_PROJECT_NAME」をセットすることで、プロジェクト名が指定できるようです。

もっと調べてみたら、「-p」オプションで指定できるようです。

ターミナル
$ docker-compose -p web up -d

試してみる

docker-compose.yml
version: '2'
services:
  httpd:
    image: httpd:2.4
    container_name: 'httpd'

  php:
    image: php:5.6-fpm
    container_name: 'php'

volumes:
  postgres-data:
    driver: local
  mysql-data:
    driver: local
  httpd-log:
    driver: local

コンテナ名を確認する。
※コンテナ名には、プロジェクト名の影響は無いみたい。

ターミナル
$ docker-compose ps 
Name               Command              State    Ports   
--------------------------------------------------------
httpd   httpd-foreground                Up      80/tcp   
php     docker-php-entrypoint php-fpm   Up      9000/tcp 

ネットワークの状況を確認する
※「web_」というプレフィックスが付いている(プロジェクト名が付加されている)

ターミナル
$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
...
97c7b3be4894        web_default         bridge              local
...

ボリュームの状況を確認する
※「web_」というプレフィックスが付いている(プロジェクト名が付加されている)

ターミナル
$ docker volume ls
DRIVER              VOLUME NAME
local               web_httpd-log
local               web_mysql-data
local               web_postgres-data

まとめ

プロジェクト名が変わると永続化しているボリュームが変わってしまうので、注意が必要。
出来る限り、プロジェクト名を意識して「-p」オプションを付けた方が無難な感じですね。
「docker-compose.yml」ファイルでプロジェクト名を定義できたらいいのに・・・できないのかな・・・?

49
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
49
24