详解Docker运维常用命令:参数、使用场景及注意事项全覆盖

以下是常用的 Docker 运维命令的详细说明,包括所有主要参数、使用形式、使用场景以及注意事项。

1. Docker 镜像操作命令

1.1 拉取镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]

参数:

  • NAME:镜像名称。
  • TAG:镜像标签(默认为 latest)。
  • @DIGEST:镜像的内容地址。
  • --all-tags-a:拉取仓库中的所有标签。
  • --disable-content-trust:忽略镜像验证 (默认开启)。
  • --platform:设置平台(例如,linux/amd64)。

案例:

docker pull nginx:latest
docker pull --all-tags ubuntu

使用场景:
从 Docker Hub 或其他镜像仓库下载所需的镜像。

注意事项:

  • 确保网络连接正常,拉取镜像需要访问外部仓库。
  • 使用 --all-tags 参数会拉取镜像仓库中的所有标签,占用较多存储空间。
1.2 列出镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]

参数:

  • -a--all:显示所有镜像(默认隐藏中间层)。
  • --digests:显示镜像摘要。
  • -f--filter:根据条件过滤显示内容。
  • --format:指定返回值的格式。
  • --no-trunc:显示完整的镜像信息。
  • REPOSITORY:仓库名称。
  • TAG:镜像标签。

案例:

docker images
docker images --digests

使用场景:
查看本地已有的 Docker 镜像。

注意事项:

  • 使用 --filter 参数可以方便地过滤出特定条件的镜像。
  • --no-trunc 参数会显示完整的镜像信息,有助于详细检查镜像。
1.3 删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]

参数:

  • IMAGE:镜像 ID 或名称。
  • -f--force:强制删除镜像。
  • --no-prune:不要删除悬空的父镜像。

案例:

docker rmi nginx:latest
docker rmi -f $(docker images -q)

使用场景:
删除本地不再需要的 Docker 镜像,释放存储空间。

注意事项:

  • 强制删除运行中的镜像会导致相关容器停止运行。
  • 删除镜像前确保没有容器在使用,否则需要使用 -f 参数强制删除。

2. 容器操作命令

2.1 运行容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

参数:

  • -d--detach:后台运行容器并返回容器 ID。
  • -i--interactive:保持标准输入打开。
  • -t--tty:分配一个伪终端。
  • --name:为容器指定名称。
  • -p--publish:映射端口(格式:hostPort:containerPort)。
  • -P--publish-all:随机映射所有端口。
  • -v--volume:绑定挂载一个卷。
  • --rm:容器停止后自动删除。
  • -e--env:设置环境变量。
  • --env-file:从文件读取环境变量。
  • --network:连接到指定网络。
  • --restart:容器重启策略(如:no, on-failure, always, unless-stopped)。

案例:

docker run -d -p 80:80 --name mynginx nginx:latest
docker run -it --rm ubuntu:latest /bin/bash

使用场景:
启动一个新的 Docker 容器,运行指定的镜像。

注意事项:

  • -d 参数后台运行容器,可以通过 docker ps 查看运行状态。
  • --rm 参数在容器退出时自动删除容器。
2.2 列出容器
docker ps [OPTIONS]

参数:

  • -a--all:显示所有容器(默认只显示运行中的容器)。
  • -q--quiet:只显示容器 ID。
  • -f--filter:根据条件过滤显示内容。
  • --format:指定返回值的格式。
  • -n--last:显示最后 n 个容器。
  • --no-trunc:显示完整的容器信息。

案例:

docker ps -a
docker ps -q

使用场景:
查看当前运行中的容器或所有容器的状态。

注意事项:

  • 使用 -a 参数可以查看所有容器,包括停止的容器。
  • -q 参数只显示容器 ID,便于批量操作。
2.3 停止容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]

参数:

  • CONTAINER:容器 ID 或名称。
  • -t--time:等待容器停止的时间(秒),默认 10。

案例:

docker stop mynginx
docker stop -t 5 $(docker ps -q)

使用场景:
停止一个或多个正在运行的 Docker 容器。

注意事项:

  • 停止容器会给其发送 SIGTERM 信号,等待一段时间后发送 SIGKILL。
  • 可以使用 -t 参数指定等待时间。
2.4 删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]

参数:

  • CONTAINER:容器 ID 或名称。
  • -f--force:强制删除运行中的容器(使用 SIGKILL)。
  • -l--link:删除链接。
  • -v--volumes:删除与容器关联的卷。

案例:

docker rm mynginx
docker rm -f $(docker ps -a -q)

使用场景:
删除一个或多个停止的 Docker 容器,释放存储空间。

注意事项:

  • 删除运行中的容器需要使用 -f 参数。
  • 确保没有需要的数据在容器内,删除操作不可恢复。

3. 容器管理命令

3.1 查看容器日志
docker logs [OPTIONS] CONTAINER

参数:

  • -f--follow:跟随日志输出。
  • --since:显示指定时间后的日志。
  • --tail:显示最后多少行日志。
  • --timestamps:显示日志时间戳。
  • --until:显示指定时间前的日志。

案例:

docker logs -f --tail 100 mynginx
docker logs --since 2021-09-01T00:00:00 mynginx

使用场景:
查看容器的日志输出,排查容器运行中的问题。

注意事项:

  • 使用 -f 参数可以实时查看日志输出。
  • --since--until 参数可以指定时间范围,有助于定位问题。
3.2 进入运行中的容器
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

参数:

  • -i--interactive:保持标准输入打开。
  • -t--tty:分配一个伪终端。
  • --detach-keys:指定容器分离的按键组合。

案例:

docker exec -it mynginx /bin/bash
docker exec -i mynginx sh -c 'echo "Hello, World!"'

使用场景:
在运行中的容器内执行命令,进行调试或维护。

注意事项:

  • -it 参数用于交互模式,分配一个伪终端。
  • 执行命令时需确保容器内有相应的命令可执行。
3.3 复制文件到容器
docker cp [OPTIONS] SRC_PATH DEST_PATH

参数:

  • SRC_PATH:源文件路径。
  • DEST_PATH:目标文件路径。

案例:

docker cp myfile.txt mynginx:/usr/share/nginx/html
docker cp mynginx:/usr/share/nginx/html/myfile.txt .

使用场景:
将本地文件复制到容器中,或从容器中复制文件

到本地。

注意事项:

  • 确保目标路径存在且具有适当的权限。
  • 大量文件复制可能会影响容器性能。

4. 网络和存储管理命令

4.1 创建网络
docker network create [OPTIONS] NETWORK

参数:

  • NETWORK:网络名称。
  • --driver:指定网络驱动程序。
  • --subnet:指定子网(CIDR 格式)。
  • --gateway:指定网关。
  • --ip-range:指定 IP 地址范围。
  • --opt:设置网络驱动选项。
  • --attachable:使网络可连接。

案例:

docker network create mynetwork
docker network create --driver bridge --subnet 192.168.1.0/24 mynetwork

使用场景:
创建一个新的 Docker 网络,便于容器之间的通信。

注意事项:

  • 使用 --subnet--gateway 参数可以自定义网络配置。
  • 不同网络驱动程序提供不同的功能。
4.2 查看网络
docker network ls

参数:

  • -f--filter:根据条件过滤显示内容。
  • --format:指定返回值的格式。

案例:

docker network ls
docker network ls --filter driver=bridge

使用场景:
查看现有的 Docker 网络。

注意事项:

  • 可以使用 --filter 参数按条件过滤网络列表。
  • 详细信息可以通过 docker network inspect NETWORK 查看。
4.3 创建数据卷
docker volume create [OPTIONS] [VOLUME]

参数:

  • VOLUME:数据卷名称。
  • --driver:指定卷驱动程序。
  • --label:为卷设置标签。
  • --opt:设置卷驱动程序选项。

案例:

docker volume create myvolume
docker volume create --label app=data myvolume

使用场景:
创建一个 Docker 数据卷,用于数据持久化存储。

注意事项:

  • 使用 --label 参数可以为数据卷打标签,便于管理。
  • 数据卷的生命周期与容器分离,数据不会因容器删除而丢失。
4.4 查看数据卷
docker volume ls

参数:

  • -f--filter:根据条件过滤显示内容。
  • --format:指定返回值的格式。

案例:

docker volume ls
docker volume ls --filter label=app=data

使用场景:
查看现有的 Docker 数据卷。

注意事项:

  • 可以使用 --filter 参数按条件过滤数据卷列表。
  • 详细信息可以通过 docker volume inspect VOLUME 查看。

5. Docker Compose 命令

5.1 启动服务
docker-compose up [OPTIONS]

参数:

  • -d--detach:后台运行容器。
  • --build:构建镜像。
  • --force-recreate:强制重新创建容器。
  • --no-deps:不启动链接的服务。
  • --remove-orphans:删除孤立的容器。
  • -t--timeout:设置容器停止等待时间(秒)。

案例:

docker-compose up -d
docker-compose up --build

使用场景:
启动基于 docker-compose.yml 定义的多个容器服务。

注意事项:

  • -d 参数后台运行服务,可以通过 docker-compose ps 查看状态。
  • 使用 --build 参数强制重新构建镜像。
5.2 停止服务
docker-compose down [OPTIONS]

参数:

  • --rmi:删除相关镜像(none、local、all)。
  • -v--volumes:删除相关卷。
  • --remove-orphans:删除孤立的容器。

案例:

docker-compose down
docker-compose down --rmi all --volumes

使用场景:
停止并删除基于 docker-compose.yml 启动的容器和网络。

注意事项:

  • --rmi 参数可以指定是否删除相关镜像。
  • --volumes 参数删除相关卷。
5.3 查看服务日志
docker-compose logs [OPTIONS] [SERVICE...]

参数:

  • -f--follow:跟随日志输出。
  • -t--timestamps:显示日志时间戳。
  • --tail:显示最后多少行日志。

案例:

docker-compose logs -f
docker-compose logs --tail 100

使用场景:
查看 docker-compose 启动的服务容器日志。

注意事项:

  • 使用 -f 参数可以实时查看日志输出。
  • 可以指定具体服务名查看特定服务的日志。

6. Docker Swarm 命令

6.1 初始化 Swarm
docker swarm init [OPTIONS]

参数:

  • --advertise-addr:指定广告地址。
  • --autolock:启用自动锁定。
  • --cert-expiry:设置证书过期时间。
  • --dispatcher-heartbeat:设置调度心跳间隔。
  • --external-ca:指定外部 CA。
  • --listen-addr:指定监听地址。

案例:

docker swarm init --advertise-addr 192.168.1.100

使用场景:
初始化 Docker Swarm 集群,将当前节点设为管理节点。

注意事项:

  • 使用 --advertise-addr 指定管理节点的地址,供其他节点加入。
  • Swarm 集群初始化后,可以通过 docker node ls 查看集群节点。
6.2 加入 Swarm
docker swarm join [OPTIONS] HOST:PORT

参数:

  • --token:指定加入的令牌。
  • --advertise-addr:指定广告地址。
  • --listen-addr:指定监听地址。

案例:

docker swarm join --token SWMTKN-1-xxxxx 192.168.1.100:2377

使用场景:
将当前节点加入到已有的 Docker Swarm 集群。

注意事项:

  • 确保加入的节点可以通过网络访问管理节点。
  • 使用 --token 参数提供管理节点生成的令牌。
6.3 查看节点
docker node ls

参数:

  • -f--filter:根据条件过滤显示内容。
  • --format:指定返回值的格式。
  • -q--quiet:只显示节点 ID。

案例:

docker node ls
docker node ls -q

使用场景:
查看 Docker Swarm 集群中的节点列表和状态。

注意事项:

  • 使用 --filter 参数可以按条件过滤节点列表。
  • --format 参数自定义输出格式。
6.4 创建服务
docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]

参数:

  • --name:指定服务名称。
  • --replicas:指定副本数量。
  • --network:指定连接的网络。
  • --constraint:设置服务约束。
  • --endpoint-mode:设置终端模式。
  • --env:设置环境变量。
  • --label:设置服务标签。
  • --limit-cpu:设置 CPU 限制。
  • --limit-memory:设置内存限制。

案例:

docker service create --name myservice --replicas 3 nginx

使用场景:
在 Docker Swarm 集群中创建一个新的服务。

注意事项:

  • 使用 --replicas 参数指定服务的副本数量。
  • --env--label 参数用于设置环境变量和标签。
6.5 查看服务
docker service ls

参数:

  • -f--filter:根据条件过滤显示内容。
  • --format:指定返回值的格式。
  • -q--quiet:只显示服务 ID。

案例:

docker service ls
docker service ls -q

使用场景:
查看 Docker Swarm 集群中已部署的服务。

注意事项:

  • 使用 --filter 参数可以按条件过滤服务列表。
  • --format 参数自定义输出格式。

通过这些命令和参数,可以高效地管理 Docker 容器、镜像、网络和数据卷等资源。

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值