Docker 常用命令
系统管理命令
-
查看系统信息
docker info
显示Docker系统的详细信息。 -
管理Docker事件
docker events
或docker system events
实时获取Docker事件,如容器的创建、启动、停止等。
镜像管理命令
-
从仓库拉取镜像
docker pull <镜像名称>:<标签>
从Docker Hub或其他镜像仓库拉取指定的镜像。 -
列出镜像
docker images
列出本地所有的Docker镜像。 -
删除镜像
docker rmi <镜像ID或名称>
删除本地的一个或多个镜像。 -
构建镜像
docker build -t <镜像名称>:<标签> <Dockerfile所在目录>
从Dockerfile构建一个新的镜像。 -
查看镜像历史
docker history <镜像ID或名称>
查看镜像的创建历史。 -
标记镜像
docker tag <源镜像ID或名称>:<源标签> <目标镜像名称>:<目标标签>
为镜像打上新的标签。 -
推送镜像
docker push <镜像名称>:<标签>
将本地镜像推送到远程仓库。 -
保存镜像
docker save -o <文件名>.tar <镜像名称>:<标签>
将镜像保存为一个tar文件。 -
加载镜像
docker load -i <文件名>.tar
从一个tar文件加载镜像。
容器管理命令
- 运行容器
docker run -it --name <容器名称> <镜像名称>:<标签>
创建并启动一个新的容器。这个命令有很多选项来定制容器的行为。
docker run
命令用于启动一个新的容器。这个命令有很多选项可以用来定制容器的启动行为。下面是一些常用的docker run
选项:
-
-d (detach)
- 将容器置于后台运行,并输出容器 ID。
-
–name
- 指定容器的名字。
-
-p, --publish [host_port:container_port]
- 映射一个或多个端口从主机到容器。例如
-p 8080:80
表示将主机的 8080 端口映射到容器的 80 端口。
- 映射一个或多个端口从主机到容器。例如
-
-v, --volume [host_dir:container_dir]
- 挂载主机目录到容器。例如
-v /host/path:/container/path
表示挂载主机的/host/path
到容器内的/container/path
。
- 挂载主机目录到容器。例如
-
–env, -e
- 设置环境变量。例如
-e KEY=value
。
- 设置环境变量。例如
-
–network
- 指定容器连接的网络。
-
–restart
- 设置容器重启策略。例如
--restart=always
表示总是重启容器。
- 设置容器重启策略。例如
-
–rm
- 当容器停止时自动删除容器。
-
–privileged
- 给容器更多的权限,允许容器执行更多的系统调用。
-
–user, -u
- 更改容器内进程的用户 ID 或用户名。
-
–entrypoint
- 覆盖容器默认的 ENTRYPOINT。
-
–workdir
- 设置容器的工作目录。
-
–security-opt
- 添加安全选项。
-
–cap-add, --cap-drop
- 添加或移除容器的能力(capabilities)。
-
–device
- 允许容器访问主机设备。
-
–memory, -m
- 设置容器的最大内存限制。
-
–cpus
- 设置容器可用的 CPU 数量。
这些选项可以根据需要组合使用。例如,启动一个名为 my-app
的容器,映射端口 8080 并挂载一个卷:
docker run -d --name my-app -p 8080:80 -v /local/path:/container/path some/image
可以使用 docker run --help
查看所有可用的选项及其详细说明。
-
列出容器
docker ps
列出所有正在运行的容器。 -
列出所有容器(包括停止的)
docker ps -a
列出所有容器,包括已停止的。 -
停止容器
docker stop <容器ID>
停止一个运行中的容器。 -
重启容器
docker restart <容器ID>
重启一个已经运行过的容器。 -
删除容器
docker rm <容器ID>
删除一个已经停止的容器。 -
进入容器
docker exec -it <容器ID> /bin/bash
进入一个正在运行的容器。 -
查看容器日志
docker logs <容器ID>
查看容器的输出日志。 -
检查容器状态
docker inspect <容器ID>
查看容器的详细信息。
综合示例
以下是一个综合使用多个选项的例子:
docker run -d --name webserver -p 8080:80 -v /host/data:/container/data -e "ENV=production" --restart always nginx
这条命令创建并启动一个名为 webserver
的容器,运行 nginx
镜像,将主机的端口 8080 映射到容器的端口 80,挂载主机目录 /host/data
到容器目录 /container/data
,设置环境变量 ENV=production
,并配置容器为总是重启。