ユーザ用ツール

サイト用ツール


docker-compose

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
docker-compose [2020/11/13 02:23] – 作成 nullpondocker-compose [2024/12/13 13:37] (現在) nullpon
行 1: 行 1:
 <markdown> <markdown>
 # docker-compose # docker-compose
 +
 +## compose
 +
 +`docker-compose`というコマンドは廃止され、dockerのサブコマンドとなりました
 +
 +```
 +docker compose up
 +```
 +
 +以下`docker-compose`コマンドは`docker compose`に読み替える
 +
  
 ## サブコマンド ## サブコマンド
行 27: 行 38:
 環境変数でcomposeファイルを指定 環境変数でcomposeファイルを指定
  
-    COMPOSE_FILE=path/to/compose1.yml:path/to/compose2.yml+    export COMPOSE_FILE=path/to/compose1.yml:path/to/compose2.yml
     docker-compose up     docker-compose up
 +
 +起動中のコンテナにアタッチ
 +
 +    docker-compose exec サービス名 コマンド
  
  
行 137: 行 152:
 ## ログの確認 ## ログの確認
  
-``` +```sh 
-docker-compose logs <service-name>+docker compose logs <service-name>
 ``` ```
  
行 144: 行 159:
  
 ``` ```
-docker-compose logs --tail 10 <service-name>+docker compose logs --tail 10 <service-name>
 ``` ```
  
-あまり便利ではないので、dockerコマンドで見た方がいいかもしれない+30分前、2時間前、2023-09-01 00:00:00 UTCからのログを見る 
 + 
 +``` 
 +docker compose logs --since 30m <service-name> 
 +docker compose logs --since 2h <service-name> 
 + 
 +docker compose logs --since 2023-09-01T00:00:00Z <service-name> 
 +``` 
 + 
 +ログを開きっぱなしにする 
 + 
 +``` 
 +docker compose logs -f <service-name> 
 +``` 
 + 
 +ログの時刻を表示する(ログ自身に時刻が表示されてない場合に便利) 
 + 
 +``` 
 +docker compose logs -t <service-name> 
 +``` 
 + 
 + 
 + 
 +## 疑似端末 
 + 
 +`docker-compose``run`や`exec`コマンドは`docker`コマンドとは逆にデフォルト疑似端末割り当てられる(`docker run -t`相当) 
 + 
 +cronから起動する場合など、疑似端末を割り当てずにdocker-compose runを実行した場合は -T オプションをつける 
 + 
 +``` 
 +docker-compose run -T hogehoge 
 +``` 
 + 
 +docker-composeで起動してるnginxのreloadをcronで実行たい場合などに必要 
 + 
 +``` 
 +docker-compose exec -T <name_of_nginx_container> nginx -s reload 
 +``` 
 + 
 +## compose.override.yaml 
 + 
 +`compose.override.yaml` というファイルを作成すると、compose.yamlの内容を上書きする。自分の環境だけで挙動を変えたい場合に使用すると良い。 
 + 
 + 
 +こんなcompose.yamlがある時・・・ 
 + 
 +```yaml 
 +services: 
 +  nginx: 
 +    image: nginx:1.25.3-alpine 
 +    restart: always 
 +    ports: 
 +      - "80:80" 
 +      - "443:443" 
 +    volumnes: 
 +      - ./docker/nginx/conf.d:/etc/nginx/conf.d  
 +      - ./docker/nginx/html:/var/www/html 
 +``` 
 + 
 +以下のような`compose.override.yaml`を作成する 
 + 
 +```yaml 
 +services: 
 +  nginx: 
 +    restart: "no" 
 +    volumes: 
 +      - ./htdocs:/var/www/html 
 +    ports: 
 +      - "8080:80" 
 +      - "8443:443" 
 +``` 
 + 
 +以下の設定で起動さる 
 + 
 +```yaml 
 +services: 
 +  nginx: 
 +    image: nginx:1.25.3-alpine 
 +    restart: no  # 上書きされる 
 +    ports: 
 +      - "80:80"  # マージされる 
 +      - "443:443" 
 +      - "8080:80" 
 +      - "8443:443" 
 +    volumnes: 
 +      - ./docker/nginx/conf.d:/etc/nginx/conf.d  
 +      - ./docker/nginx/html:/var/www/html # コンテナ側のパスが同一のものがあれば上書きされる 
 +``` 
 + 
 +スカラー値は上書きされる、配列値はマージされる(よってportsを完全に上書きすることはできない、ただし、volumesはコンテナ側のパスが同一の値があれば上書きする) 
  
 </markdown> </markdown>
docker-compose.1605234213.txt.gz · 最終更新: 2020/11/13 02:23 by nullpon