目录
1.1 docker --version:查看 Docker 版本
1.2 docker info:查看 Docker 系统信息
4.3 docker push:将镜像推送到 Docker Hub
4.4 docker save 和 docker load:导出和导入镜像
Docker 已经成为开发和运维领域中不可或缺的工具,它通过容器化技术简化了应用的构建、部署和管理过程。掌握 Docker 命令对于高效使用 Docker 至关重要。本文将列举并讲解一些常用的 Docker 命令,以及在开发和运维中的使用技巧,帮助你提升 Docker 使用效率。
一、基础命令
1.1 docker --version
:查看 Docker 版本
在开始使用 Docker 之前,首先要确保你已经正确安装了 Docker。你可以通过以下命令查看当前安装的 Docker 版本:
docker --version
输出示例:
Docker version 20.10.7, build f0df350
这个命令帮助你确认安装的版本,并方便你进行故障排查或升级。
1.2 docker info
:查看 Docker 系统信息
该命令可以获取 Docker 引擎的详细信息,包括容器数量、镜像数量、存储驱动、操作系统信息等。
docker info
输出示例:
Client:
Context: default
Debug Mode: false
Server:
Containers: 5
Running: 2
Paused: 0
Stopped: 3
Images: 10
Server Version: 20.10.7
Storage Driver: overlay2
...
通过这些信息,你可以快速了解 Docker 环境的整体状况。
二、镜像管理命令
2.1 docker pull
:拉取镜像
使用 docker pull
命令可以从 Docker Hub 或其他镜像仓库拉取镜像。
docker pull ubuntu:20.04
这条命令会从 Docker Hub 拉取 ubuntu:20.04
镜像。如果镜像不存在,Docker 会自动从远程仓库下载。
2.2 docker build
:构建镜像
通过 Dockerfile 文件构建镜像,通常用于自定义应用环境。以下是一个 Dockerfile 示例:
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "index.js"]
构建镜像的命令:
docker build -t my-node-app .
该命令会根据当前目录中的 Dockerfile 文件构建镜像,并将其命名为 my-node-app
。
2.3 docker images
:查看本地镜像
通过 docker images
命令可以查看本地所有的 Docker 镜像:
docker images
输出示例:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 20.04 d5b3d60e46b1 2 weeks ago 29.9MB
my-node-app latest 6bbf906f13f6 1 hour ago 315MB
2.4 docker rmi
:删除镜像
删除镜像时,可以使用 docker rmi
命令。例如,删除 my-node-app
镜像:
docker rmi my-node-app
注意:如果镜像正在被某个容器使用,删除镜像时会报错。
三、容器管理命令
3.1 docker run
:创建并启动容器
docker run
命令是 Docker 中最常用的命令之一,它用于基于镜像创建并启动容器。例如,运行一个基于 ubuntu
镜像的容器:
docker run -it ubuntu:20.04 bash
这里的参数说明:
-it
:以交互模式运行并分配终端。ubuntu:20.04
:指定镜像。bash
:容器启动时运行的命令。
3.2 docker ps
:查看正在运行的容器
查看当前正在运行的容器:
docker ps
输出示例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d2b1d3194f32 ubuntu:20.04 "bash" 3 hours ago Up 3 hours my-ubuntu-container
3.3 docker ps -a
:查看所有容器
docker ps -a
可以查看所有容器,包括已停止的容器:
docker ps -a
3.4 docker stop
:停止容器
通过 docker stop
命令可以停止正在运行的容器。例如,停止容器 my-ubuntu-container
:
docker stop my-ubuntu-container
3.5 docker start
:启动容器
可以通过 docker start
命令启动一个已经停止的容器:
docker start my-ubuntu-container
3.6 docker restart
:重启容器
有时需要重启容器,可以使用 docker restart
命令:
docker restart my-ubuntu-container
3.7 docker exec
:在运行中的容器中执行命令
你可以通过 docker exec
在一个正在运行的容器中执行命令。比如,你想在容器中运行一个 Bash 会话:
docker exec -it my-ubuntu-container bash
3.8 docker rm
:删除容器
删除一个已停止的容器:
docker rm my-ubuntu-container
3.9 docker logs
:查看容器日志
通过 docker logs
命令,你可以查看容器的标准输出和标准错误输出:
docker logs my-ubuntu-container
四、容器与镜像的进阶命令
4.1 docker commit
:创建容器的镜像
在容器中做了一些修改并想要将其保存为新的镜像时,可以使用 docker commit
:
docker commit my-ubuntu-container my-new-image
这将创建一个新的镜像 my-new-image
,它是基于容器 my-ubuntu-container
当前状态生成的。
4.2 docker tag
:给镜像打标签
通过 docker tag
命令,可以为镜像打标签,使镜像管理更加清晰。例如:
docker tag my-new-image myrepo/my-new-image:1.0
4.3 docker push
:将镜像推送到 Docker Hub
如果你想将本地镜像推送到 Docker Hub 或其他镜像仓库,可以使用 docker push
:
docker push myrepo/my-new-image:1.0
4.4 docker save
和 docker load
:导出和导入镜像
如果需要在没有互联网连接的环境中传输镜像,可以使用 docker save
导出镜像:
docker save -o my-image.tar my-new-image
然后,使用 docker load
导入镜像:
docker load -i my-image.tar
五、Docker 常用技巧
5.1 使用 Docker Compose 管理多容器
Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过 docker-compose.yml
文件,你可以一次性启动多个容器。
version: '3'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
运行:
docker-compose up -d
5.2 Docker 容器与数据持久化
容器本身是临时的,数据如果存储在容器中会在容器删除时丢失。为了解决这个问题,可以使用 Docker 数据卷来持久化数据。
docker volume create my-volume
docker run -d -v my-volume:/data my-app
5.3 使用 Docker 网络
Docker 提供了网络功能,可以让多个容器之间相互通信。你可以创建自定义网络并让容器连接到该网络。
docker network create my-network
docker run -d --network my-network --name container1 my-image
docker run -d --network my-network --name container2 my-image
六、总结
通过对常见 Docker 命令的详细讲解,我们可以看到,Docker 的命令非常强大且灵活,能够帮助开发者和运维人员高效管理容器和镜像。本文不仅介绍了常见命令的基本用法,还分享了一些实际应用中的使用技巧,如数据持久化、容器与镜像的管理等。
掌握这些命令和技巧后,你将能够更加熟练地使用 Docker,从而提升开发效率和运维质量。希望本文对你有所帮助,如果有任何问题或建议,欢迎在评论区留言讨论!