尝试理解 DockerCompose (Docker Compose)

首先

你好。夏天已经完全来临了。我是ponponnsan。

好吧,今天我想要更深入地了解一下docker compose,就在某种氛围中稍微接触了一下它。

以下是我参考的书籍。非常易懂,强烈推荐。真不愧是亚马逊畅销书。

 

Docker Compose 是什么?

写Docker命令一个个地都写下来真是麻烦啊。
Docker Compose可以将与构建相关的命令内容写入一个yaml文件中,然后一次性执行,停止或销毁。

Dockerfile与之间的不同是什么? (What is the difference between Dockerfile and [something]?)

Docker Compose: 是「docker run」的集合体,除了创建容器外,还可以创建网络和卷等。
Dockerfile: 用于创建镜像,不能创建网络和卷等。

*音量… 像是将存储空间划分出一部分的东西。好比把长长的蛋糕切成一块一样的形象。

docker-compose.yaml的写法

# バージョンを書く
version: '3'

# コンテナの情報
services: 
  mySqlService:
    image: mysql:5.7
    # macはこれがないと動かなかった。
    # M1のCPUは、linux/arm64/v8だが、使用しようとしたimageがこれに対応していない
    # platformを指定して、linux/amd64に指定をする
    platform: linux/amd64
    networks:
      - myNetwork
    volumes:
      - mySqlVolume:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: myrootpass
      MYSQL_DATABASE: myDb
      MYSQL_USER: myUser
      MYSQL_PASSWORD: myPass
  
  wordpressService:
    depends_on:
      - mySqlService
    image: wordpress
    networks:
      - myNetwork
    volumes:
      - wordpressVolume:/var/www/html
    ports:
      - 8085:80
    restart: always
    environment:
      WORDPRESS_DB_HOST: mySqlService
      WORDPRESS_DB_NAME: myDb
      WORDPRESS_DB_USER: myUser
      WORDPRESS_DB_PASSWORD: myPass

# ネットワークの情報
networks:
  myNetwork:

# ボリュームの情報
volumes:
  mySqlVolume:
  wordpressVolume:


定义文件的编写规则

    • 最初にDocker Composeのバージョンを書く

 

    • 「services」「networks」「volumes」の順に書く

 

    • 親子関係はスペースで字下げして表す

 

    • 名前は、大項目の下に字下げして書く

 

    • コンテナの設定内容は名前の下に字下げして書く

 

    • 「-」が入っていたら複数指定できる

 

    • 名前の後ろには「:」をつける

 

    • 「:」の後ろには、空白が必要

 

    • コメントアウトが使える

 

    文字列はシングルクォートかダブルクォート

未来的挑战

    • ボリュームマウントとバインドマウントの違い

 

    ネットワークの設定の仕方
广告
将在 10 秒后关闭
bannerAds