web-dev-qa-db-ja.com

特定のコンテナのみに対してdocker-compose up

複数のコンテナを含むdocker-compose.ymlがあります。それらのうち3つはアプリ(クライアント、サーバー、データベース)用で、残りはさまざまな開発ツール(psql、npm、manage.pyなど)用です。 docker-compose upを実行すると、それらはすべて開始されますが、開始するのは主に3つだけです。指定したリンクのため、これらの3つだけをdocker-compose up clientで開始できますが、出力はその1つのコンテナーからのみです。だから、次のいずれかを行う方法があります:

  1. docker-compose upによって開始されたコンテナーをdocker-composeに指示します
  2. docker-compose up clientからリンクされたすべてのコンテナーから出力を取得する
77
aquavitae

次を使用してコンテナを起動できます。

$ docker-compose up -d client

これにより、コンテナがバックグラウンドで実行され、出力が利用可能になります

$ docker-compose logs

開始したすべてのコンテナで構成されます

144
wsl

Docker-composeファイルで定義された特定のサービスを開始します。たとえば、docker-compose.ymlがある場合

Sudo docker-compose start db  

次のような構成ファイルを指定します。

version: '3.3'

services:
   db:
     image: mysql:5.7
     ports:
       - "3306:3306"
     volumes:
       - ./db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: yourPassword
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: yourPassword

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "80:80"
     volumes:
       - ./l3html:/var/www/html
     restart: always
     environment:
       WORDPRESS_DB_Host: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: yourPassword
volumes:
    db_data:
    l3html:

スイート全体を開始する前に、mySQLのみを開始したい場合もあります(データベースにデータを追加したい場合もあります)。

20
Hugo R

通常、これを行いたくありません。 Docker Composeでは、アプリをservices thatcomposeと定義します。 npmおよびmanage.pyは単なる管理コマンドです。それらのコンテナは必要ありません。必要な場合は、manage.pyを使用してデータベーステーブルを作成すると、必要な作業は次のとおりです。

docker-compose run client python manage.py create_db

Herokuが使用する1回限りのダイノと考えてください。

これらの管理コマンドを個別のコンテナとして扱う必要がある場合(およびこれらにDocker Composeを使用する場合)、個別の.ymlファイルを作成し、次のコマンドでDocker Composeを起動できます。

docker-compose up -f my_custom_docker_compose.yml
0
linkyndy