环境
CentOS Linux release 7.6.1810 (Core)
Docker version 20.10.12, build e91ed57
Docker
/var/lib/docker:相关文件几乎都在此目录下
/var/run/docker
/etc/docker
/run/docker.sock
/var/lib/containerd
/run/containerd
/opt/containerd
Docker 命令帮助非常完善。多使用命令 --help 获取相关命令的帮助文档。
以下均为个人常用示例。
运行操作相关
docker run
-it:命令交互模式运行容器。参数 i(开启命令输入) 和 t(模拟 tty) 通常连用。
-d:后台运行容器。
-v 本机目录:容器目录:挂载目录,挂载本机目录到容器目录,约等于Linux mount。多个目录,使用多个 -v。
--mount 卷参数:挂载卷。
通常与创建卷一起用于需读写的配置文件。
例如:--mount source=卷名称,target=容器目录
-p 本机端口:容器端口:端口映射。多个端口,使用多个 -p。
进入容器:docker exec -it 容器ID /bin/bash
备份数据库:docker exec -i 容器ID mysqldump -u帐号 -p密码 --databases 数据库 > 本机存储路径.sql
复制容器问文件到本机:docker cp 容器ID:绝对路径 本机路径(支持相对路径)
复制本机当前文件到容器:docker cp 本机路径(支持相对路径) 容器ID:绝对路径
container 容器相关
docker ps:列出正在运行的容器,等于 docker container ls。
docker ps -a:列出所有容器概况,包括未运行的。
docker ps -aq:列出所有容器ID,包括未运行的。
docker stop $(docker ps -q):停止所有容器。
docker rm $(docker ps -aq |grep -v 容器ID):除单个容器外,删除其他所有容器。谨慎使用!!!
docker rm $(docker ps -aq |grep -vE 正则表达式):除正则表达式匹配的容器外,删除其他所有容器。谨慎使用!!!
docker rm -vf $(docker ps -aq):删除所有容器,包括容器相关的卷。谨慎使用!!!
Image 镜像相关
docker images:列出镜像,等于 docker image ls。
docker images -a:列出所有镜像,包括中间镜像。
docker images -q:列出镜像ID。
docker images -qa:列出所有镜像ID,包括中间镜像。
docker history 镜像ID:查看镜像构建历史。
docker rmi -f $(docker images -aq):删除所有镜像,包括中间镜像。谨慎使用!!!
Volume
docker volume create 卷名称:创建卷
docker volume ls:列出卷
docker volume ls -q:列出卷ID
指定卷参数并创建卷,通常用于存放容器中的需进行写操作配置文件。
docker volume create --name 卷名称 --opt type=none --opt device=本地目录 --opt o=bind
docker volume create --driver local --name 卷名称 --opt type=none --opt device=本地目录 --opt o=uid=root,gid=root --opt o=bind
DockerFile
VOLUME 匿名卷
不建议使用。建议均提前告知用户需挂载的卷。
定义匿名卷后,虽然在用户未手动挂载的情况下,虽然往容器中写入的相关数据不会丢失。
但是,仅对使用者来说,非常不友好。
1 容易造成使用者不知情。
2 每次运行容器自动挂载匿名卷,会产生非常多的匿名卷,占用硬盘。
Docker-Compose
更新中...
参考
yeasy.gitbook.io/docker_practice/
stackoverflow.com/questions/44785585/docker-how-to-delete-all-local-docker-images
stackoverflow.com/questions/39496564/docker-volume-custom-mount-point