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