iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
DevOps

搞定Docker網路系列 第 11

Docker的網路-Docker Compose yaml的寫法(Services top-level element network篇)

  • 分享至 

  • xImage
  •  

Compose Yaml其實有不少可以好好琢磨的地方,大家可以嘗試好好研讀跟熟練,我覺得多練習撰寫yaml,對未來轉換到k8s寫yaml,幫助會很大

這邊說明一下compose yaml的top-level

  • version
  • name
  • service
  • volume
  • network
  • secret
  • config

所有top-level的撰寫中,只有service是必要的,沒有service就無法讓compose可以正常執行,其他top-level可以依據需求調整

我們這邊小試身手,嘗試把docker run轉換成docker compose yaml

從最簡單的docker run -d -p 3000:3000 gogs/gogs,我們來看如何拆解。

  1. -p:publish,這個參數屬於service level,我們使用官方文件查一下對映的寫法:

ports:
  - "3000:3000"

參考:
https://docs.docker.com/compose/compose-file/05-services/#attach

  1. gogs/gogs:這是service level的image,一樣找一下文件:
    image: gogs/gogs
  1. -d: detach,這部份必須在docker-compose的時候加上-d,無法寫在compose yaml

參考:
https://docs.docker.com/engine/reference/commandline/compose_up/

所以我們來改寫成compose yaml吧

version: "3"
name: test1
services:
  gogs:
    image: gogs/gogs
    ports:
      - "3000:3000"

執行

docker-compose -f docker-compose.yaml up -d

成功!!!

本篇很簡單的將docker run改成docker compose yaml,後續會把之前寫的dns也做轉換。


上一篇
Docker的網路-Docker Compose yaml的寫法(external與internal篇)
下一篇
Docker的網路-討論WAN IP之前
系列文
搞定Docker網路31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言