Docker 基本語法備忘

由於初學docker,個人學習習慣是在實踐中了解每個指令的作用,因此作此備忘錄,侷限學者方便複習。有需要學習的,完整教材可以查看以下兩個良心連結。

《Docker 从入门到实践》简体中文版

《Docker 從入門到實踐》正體中文版

《ocker Compose 命令說明》

启动

docker run -t -i -d
  • -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上,
  • -i 则让容器的标准输入保持打开。
  • -d 表示守護狀態打開

進入容器

  • docker attach 命令

    docker attach <containersID>
  • docker exec 命令 (配合 -dit使用)

  • 推荐大家使用 docker exec 命令,(attach从这个 stdin 中 exit,会导致容器的停止,exec不會,所以推薦用exec)

    docker run -dit ubuntu
    docker exec -i  <containersID> bash
  • 不清楚的時候,多使用docker exec –help查看

導出導入容器

暫時不明白這部分的主要作用是什麼

#導出
docker export <containersID> > ubuntu.tar

#導入
cat ubuntu.tar | docker import - test/ubuntu:v1.0

數據管理

数据卷(Volumes)

創建一個數據卷

docker volume create my_vol

查看指定的數據卷

docker volume inspect my_vol

查看容器的具體信息

docker inspect odoo

刪除某一個數據卷

docker volume rm my_vol

刪除無主的數據卷(好像停止的容器也屬於無主)

docker volume prune
挂载主机目录 (Bind mounts)

比較好用,數據庫更新的頻繁,掛載出來比較方便

使用mount掛在

docker run -d -P \
--name web \
# -v /src/webapp:/opt/webapp \
--mount type=bind,source=/src/webapp,target=/opt/webapp \
training/webapp \
python app.py

上面的命令:
加载主机的 /src/webapp 目录到容器的 /opt/webapp目录。
本地目录的路径必须是绝对路径。
使用 -v 参数时如果本地目录不存在 Docker 会自动为你创建一个文件夹,使用 –mount 参数时如果本地目录不存在,Docker 会报错。

掛載的命令默認是 讀寫,如需改為讀,增加readonly:

docker run -d -P \
--name web \
# -v /src/webapp:/opt/webapp:ro \
--mount type=bind,source=/src/webapp,target=/opt/webapp,readonly \
training/webapp \
python app.py

需要了解的額外知識點

什麼是Nexus