常见的 Docker 命令及其使用技巧

目录

常见的 Docker 命令及其使用技巧

一、基础命令

1.1 docker --version:查看 Docker 版本

1.2 docker info:查看 Docker 系统信息

二、镜像管理命令

2.1 docker pull:拉取镜像

2.2 docker build:构建镜像

2.3 docker images:查看本地镜像

2.4 docker rmi:删除镜像

三、容器管理命令

3.1 docker run:创建并启动容器

3.2 docker ps:查看正在运行的容器

3.3 docker ps -a:查看所有容器

3.4 docker stop:停止容器

3.5 docker start:启动容器

3.6 docker restart:重启容器

3.7 docker exec:在运行中的容器中执行命令

3.8 docker rm:删除容器

3.9 docker logs:查看容器日志

四、容器与镜像的进阶命令

4.1 docker commit:创建容器的镜像

4.2 docker tag:给镜像打标签

4.3 docker push:将镜像推送到 Docker Hub

4.4 docker save 和 docker load:导出和导入镜像

五、Docker 常用技巧

5.1 使用 Docker Compose 管理多容器

5.2 Docker 容器与数据持久化

5.3 使用 Docker 网络

六、总结


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,从而提升开发效率和运维质量。希望本文对你有所帮助,如果有任何问题或建议,欢迎在评论区留言讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一碗黄焖鸡三碗米饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值