一、镜像管理
1、拉取镜像
docker pull [registry地址/]命名空间/镜像名:tag
示例:docker pull docker.io/library/nginx:latest
2、镜像相关命令
# 列出本地镜像
sudo docker images
# 删除镜像
sudo docker rmi 镜像名或ID # 例如:sudo docker rmi nginx
docker image prune -a -f
-a:删除所有未被任何容器引用的镜像(包括有标签但未使用的镜像)。
-f:跳过确认
二、容器操作
1、启动容器
sudo docker run nginx # 使用镜像创建并运行容器
-d # 使用分离模式,使容器在后台运行
-p 80:80 # 端口映射,宿主机端口:容器内端口
-v /website/html:/usr/share/nginx/html # 挂载卷,宿主机目录:容器内目录
-v nginx_html:/usr/share/nginx/html # 命名卷(存储空间),卷的名字:容器内目录
--name my_nginx # 给容器定义名字,在宿主机上唯一
-it # 让控制台进入容器交互
--rm # 当容器停止的时候删除容器
--restart always # 自动重启停止的容器
--restart unless-stopped # 自动重启非手动停止的容器
2、生命周期管理
# 查看容器
sudo docker ps # 查看运行中容器
sudo docker ps -a # 查看所有容器(含停止的)
# 操作容器
sudo docker start 容器名/ID
sudo docker stop 容器名/ID
sudo docker rm -f 容器名/ID # 强制删除容器
三、数据卷管理
# 创建卷
sudo docker volume create nginx_html
# 查看卷详情
sudo docker volume inspect nginx_html # 包含挂载路径(需root权限)
# 列出所有创建过的卷
sudo docker volume list
# 使用卷
sudo docker run -v nginx_html:/usr/share/nginx/html nginx
# 删除卷
sudo docker volume rm nginx_html
sudo docker volume prune -a # 删除所有未使用的卷
四、环境变量与交互
1、设置环境变量
sudo docker run -e KEY=value 镜像名
示例:-e MONGO_INITDB_ROOT_USERNAME=admin
2、容器交互
# 执行命令
sudo docker exec 容器名/ID 命令
# 查看容器内的进程
sudo docker exec 容器名或ID ps -ef
# 进入容器终端
sudo docker exec -it 容器名/ID /bin/sh
五、平台适配
docker pull --platform=linux/amd64 nginx
支持架构:
linux/amd64 # x86_64
linux/arm64 # ARM 64位
linux/arm/v7 # ARM 32位 v7
六、端口与日志
1、端口映射
-p 8080:80 # 宿主机8080映射容器80端口
2、查看日志
sudo docker logs 容器名/ID
sudo docker logs -f 容器名/ID # 实时滚动显示