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 <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
,并配置容器为总是重启。