docker-compose의 기초

docker-compose를 배웠기 때문에 출력합니다.
(그렇다면 인프라학과를 열심히 공부한 것은 이번이 처음일 것이다.)
※ Docker 출력의 지속
https://zenn.dev/eitches/articles/2021-0305-docker-container-network
https://zenn.dev/eitches/articles/2021-0320-docker-volumes

docker-compose


개요


1. コマンドラインツールと設定ファイルを組み合わせたもの  
2. あくまでローカル/テスト環境用のコマンドで、本番環境での使用は想定されていない  
3. バックグラウンドでDocker CLIのAPIを叩いているだけ

ex)  
RailsはRailsだけで動いているわけではなく、MySQLなどと連携して動いている  
-> これらをDockerで動かす場合、それぞれのコンテナを関連付けて動かす必要があるが、
   コンテナごとにdokcer container runなどのコマンドを実行していられない  
-> YAMLファイルにあらかじめ実行コマンドや設定を記述しておき、docker-composeコマンドで一発で実行できるようにする

Docker-Compose를 구성하는


1. YAMLファイル(設定ファイル)
     複数のコンテナ、ネットワーク、ボリュームなどの関係性や設定を記述できる
2. コマンドラインツール
     docker-composeコマンドを使用できる
     YAMLファイルの情報に基づいて実行される

1. YAML 파일 정보


개요


1. containers, networks, volumesそれぞれの設定ができ、関連をもたせることもできる  
2. 基本的にはdocker-compose.ymlというファイル名だが変えることもできる(推奨しない)  
3. servicesはcontainersのこと

drupal과postgresql을 결합하여 시작하는 YAML 파일


사용자 정의drupal 이미지를 사용할 때
# DrupalとPostgresの設定の例
version: '2'
services:
  drupal: # ここの名前は自由、コンテナを参照する際のDNS名となる
    # build: .でdocker-compose.ymlと同じフォルダにDockerfileがあることを示す
    build: . 
    # Dockerfileの名前がデフォルトと違う場合はdockerfile、
    # 保存場所がdocker-compose.ymlと違うディレクトリの場合はcontextに指定する
    # build:
    #   context: .
    #   dockerfile: drupal.Dockerfile
    image: custom-drupal # ローカルにイメージのキャッシュがない場合、ここから取得する
    ports:
      # コンテナ側のportはDokerfileやREADME, docker image inspectから調べる
      - "8080:80"
    volumes:
      # どのVolumeを使用するのかはそのイメージのREADMEを参照
      - drupal-modules:/var/www/html/modules
      - drupal-profiles:/var/www/html/profiles
      - drupal-sites:/var/www/html/sites
      - drupal-themes:/var/www/html/themes
   postgres:
     image: postgres
     environment:
       - POSTGRES_PASSWORD=test
     volumes:
       - drupal-data:/var/lib/postgresql/data

volumes: 
 # servicesでvolumesを設定した場合、個々にも書く
 # valueが空の場合、プラットフォームのデフォルトが使用される
 drupal-data:
 drupal-modules:
 drupal-profiles:
 drupal-sites:
 drupal-themes:

시험을 준비하다


1. bridgeはdocker-compose up時にランタイム上で自動生成されるので、設定しなくてよい
2. portsを指定するのは、あくまでlocalhostに読み取らせたいコンテナのみ  
   -> コンテナ同士はportsがなくてもDockerネットワーク(bridge)内部で通信できる
3. docker-compose downするとボリュームも消えるが、volumesを指定しておくとデータを永続化できる

2. 명령 정보


docker-compose up


네트워크나 볼륨을 만들거나 명령을 통일적으로 실행할 수 있습니다
이 명령을 통해 1개 이상의 명령을 실행하고 설정을 반영합니다
=> 서버 등이 이미지에서 다운로드되므로 실행 환경에 의존하지 않음
=> 간편한 환경 구축
docker container run에서 사용하는 - d 옵션 등을 사용할 수 있습니다

docker-compose down


docker-compose up으로 시작된 컨테이너 클래스를 STOP
네트워크와 음량도 remove.

docker-compose top


이제 docker-compose를 통해 일어나는 모든 과정을 확인할 수 있습니다.

docker-compose build OR docker-compose up -b


1. イメージのダウンロードやビルドを行う(後者はビルドしてからコンテナを起動する)
2. キャッシュがある場合はキャッシュを使用するので、Dockerfileに更新がある場合は--no-cacheオプションを使用する

좋은 웹페이지 즐겨찾기