ユーザ用ツール

サイト用ツール


docker-compose

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
docker-compose [2021/05/26 06:57] 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らのログを見る
  
-## run +``` 
 +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 run`コマンドは`docker run`とは逆にデフォルトで疑似端末が割り当てられる(`docker run -t`相当)+ログを開きっぱなしにする 
 + 
 +``` 
 +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 オプションをつける cronから起動する場合など、疑似端末を割り当てずにdocker-compose runを実行したい場合は -T オプションをつける
行 160: 行 194:
 docker-compose run -T hogehoge 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.1622012252.txt.gz · 最終更新: 2021/05/26 06:57 by nullpon