Try   HackMD

🛠️ 【軟體】必學的 Docker 🛠️

compose.yml 細節

compose.yml 的用意是將 docker run 的各種附加參數,
改成全部定義在一份 yml 檔案中,
並且以 docker compose up 取代 docker run [...]


1. 我常用的設定

具體參數不知道意義的就 GPT 唄。

  • compose.yml
    主要功能:網路、賦予 USB 端口權限、容器 GUI、工作目錄掛載。
    ################################ shared settings ################################ ​x-shared-settings: &shared-settings ​ build: ​ context: . ​ dockerfile: Dockerfile ​ target: final ​ image: pomelo925/ttennis-humble:rtabmap ​ tty: true ​ network_mode: host ​ privileged: true ​ volumes:- /tmp/.X11-unix:/tmp/.X11-unix ​ - $HOME/.Xauthority:/root/.Xauthority ​ - /dev:/dev ​ ​ - ../slam-ws/src:/home/user/slam-ws/src ​ environment:- DISPLAY=${DISPLAY}- COMMAND=${COMMAND} ​ devices:- /dev:/dev ​################################ Container Startup ################################ ​services: ​ rtabmap-deployment: ​ <<: *shared-settings ​ container_name: rtabmap-deployment ​ command: "/bin/bash"

設定完後一樣在 compose.yml 的資料夾層級中輸入 docker compose up
就能啟動並進入容器的終端機了。


2. docker compose 常用的指令

  • docker compose build:構建 Image,會從 Dockerfile 構建。
    注意如果本地端原有相同 Image 但是用 pull 下來的,就會構建並覆蓋之。

  • docker compose -p rtabmap up -d
    參數 -d 表示背景執行(daemon),不會占用終端機。
    參數 -p 是設定群組名稱,預設是 docker。

  • docker compose -p rtabmap down --volumes --remove-orphans
    移除 rtabmap 群組底下的 container 們。