当前位置: 代码网 > it编程>开发工具>Docker > 详解Docker运维常用命令:参数、使用场景及注意事项全覆盖

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

2024年08月06日 Docker 我要评论
常用的 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 容器、镜像、网络和数据卷等资源。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com