docker 常用命令

docker 常用命令

镜像

# 查看
docker images
# 下拉
docker pull [OPTIONS]name:tag
# 删除
docker rmi [OPTIONS]name:tag
# 导出
docker save -o image.tar.gz [OPTIONS]name:tag
# 导入
docker load -i image.tar.gz
# 重命令
docker tag image_id oldtag:newtag
# 查看详细信息
docker inspect images_id/images_name

容器

单机环境下建议使用docker-compose管理容器,比直接用 run 命令管理方便多了, docker 容器命令

# 容器详细信息
docker inspect container_id
# 查看容器日志
docker logs container_id
# 进入容器
docker exec -it  container_id bash
# 容器打包
docker commit container_id [repository[:tag]]
# 删除
docker rm -f container_id    # docker rm -f $(docker ps -a -q)) 干掉所有容器

网络

关于 docker 网络相关 可以查看这两篇文章 Docker之网络Docker网络互联原理及自定义网络的使用

# 查看网络
docker network ls 
# 创建网络  创建 bridge 类型网络
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 network_name
# 删除网络
docker network rm network_name
# 查看网络详细信息
docker network inspect network_id/name

docker-compose

# 启动  -d 后台启动
docker-compose up -d  
# 停止,并删除关联的容器
docker-compose down  
# 重启 可以单独重启某个服务
docker-compose restart [容器的名称]  
# 正在运行的容器  -q 打印容器id
docker-compose ps    
# docker-compose管理的容器
docker-compose images  
# 进入容器
docker-compose exec [参数] [service] [CMD] 
# 查看容器进程:
docker-compose top  
# 查看日志  -f 监听日志
docker-compose logs -f [容器的名称] 

docker swarm

Docker Swarm 介绍与集群管理

# 使用 docker-compose 文件 启动服务
docker stack deploy -c docker-compose.yml stack_name
# 查看所有stack 
docker stack ls
# 查看 stack 服务
docker stack services container_name
# 删除
docker stack rm stack_name
# 查看日志
docker service logs container_name	
# 单独重启某个服务
docker sercice update container_name

docker-compose 和 docker swarm yml 文件区别

docker-compose和docker swarm yml文件是两种不同的文件格式,它们的作用和使用方式也有所不同:

\1. Docker Compose YML文件:用于定义和运行多个Docker容器的配置文件,支持通过docker-compose命令一键启动、停止、重启、删除应用,可以通过多种方式定义容器之间的关系和依赖,例如:link、volumes、ports、environment等。

\2. Docker Swarm YML文件:用于定义和管理Docker集群中的服务、任务和网络的配置文件,支持通过docker stack命令部署、更新、扩容和缩容服务,可以指定服务副本数量、资源限制、镜像地址、环境变量等。

# docker swarm 的yml 文件 多了 deploy 配置 
  deploy:
      replicas: 2  # 指定服务数量
      placement:
        constraints:  # 指定节点
          - node.role == manager
# 扩容缩容
1. docker-compose
	1. yml 文件中 修改 scale 的值 默认是1
	2. 命令 docker-compose up --scale service_name=2
2. docker swarm 
    1. yml 文件中 修改 deploy 下 replicas 的值 默认是1
    2. 命令 docker service scale service_name=3 

其他

docker system 命令用于管理 Docker 系统:

1. docker system df:查看 Docker 系统的磁盘使用情况,包括镜像、容器、卷的占用空间和总限制空间。
参数:
- --verbose/-v:显示详细信息,包括每个容器、镜像和卷的大小。
- --no-trunc:不截断输出,显示所有信息。

2. docker system events:实时显示 Docker 系统的事件,包括容器的启动、停止、删除等操作。
参数:
- --since/-s:只显示指定时间之后的事件。
- --until/-u:只显示指定时间之前的事件。
- --filter/-f:根据条件筛选事件,可以根据容器、镜像、卷、网络等筛选。

3. docker system prune:删除在 Docker 系统中未被使用的镜像、容器、卷和网络,释放存储空间。
参数:
- --all/-a:删除所有未使用的镜像、容器、卷和网络。
- --volumes:同时删除未使用的卷。
- --force/-f:强制执行,不需要确认。

4. docker system info:查看 Docker 系统的信息,包括版本、操作系统、内存、CPU、镜像、容器和卷等。
参数:
- --format/-f:指定输出格式,可以使用 Go 模板语言。
- --time/-t:同时显示时间信息。

5. docker system prune -a –volumes:删除所有容器、镜像、网络、卷及缓存。

6. docker system prune -a:删除所有容器、镜像、网络、卷但不删除缓存。

7. docker system prune -f:清除所有没有使用的容器,镜像,卷,网络和构建缓存。

8. docker system prune -a --volumes --filter "label!=keep":删除所有未被标记为“keep”的容器、镜像、网络和卷,同时删除所有未使用的匿名卷和未附加到容器的卷。

9. docker system prune -a --volumes --filter "label!=keep" --force:强制执行命令,不需要确认。
  • 批量打包docker-compose.yml 文件中镜像脚本
#!/bin/bash
save_dir="./images"

mkdir -p ${save_dir}

for file in $(find ./ -maxdepth 1 -name "docker-compose*.yml"); do
  for image_name in $(cat "${file}" | awk '{if ($1 == "image:") print $2;}'); do
      pack_name=$(echo "$image_name" | sed 's/\//_/g' | sed 's/:/-/g')
      echo "Pack image: $image_name to ${save_dir}/$pack_name.tgz..."
      docker pull "${image_name}"
      docker save "${image_name}" -o ${save_dir}/"${pack_name}".tar
      tar -czvf ${save_dir}/"${pack_name}".tgz ${save_dir}/"${pack_name}".tar
      rm -rf $save_dir/"${pack_name}".tar
      echo ""
  done
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

go&Python

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

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

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

打赏作者

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

抵扣说明:

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

余额充值