前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Docker】专题二:Docker 常用命令

【Docker】专题二:Docker 常用命令

作者头像
行者Sun
发布2024-09-02 12:26:03
1060
发布2024-09-02 12:26:03
举报
文章被收录于专栏:Docker

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!

如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~

镜像操作命令

1、登录镜像仓库

代码语言:javascript
复制
docker login -u "用户名" -p "用户密码" "镜像仓库地址"

2、从仓库下载镜像

代码语言:javascript
复制
docker pull <镜像名称或镜像ID>
# 示例:docker pull docker.io/nginx:1.21
# <镜像名称>格式一般为:<镜像仓库地址>/<仓库名称>:<标签>
# --platform:指定镜像架构,如 amd64、arm64 等

3、修改镜像名称

代码语言:javascript
复制
docker tag <原镜像名称> <新镜像名称>
# 示例:docker tag docker.io/nginx:1.21 local.hub/nginx-demo:1.21-xxx

4、推送镜像至仓库

代码语言:javascript
复制
docker push <镜像名称>
# 示例:docker push local.hub/nginx-demo:1.21-xxx

5、构建镜像

代码语言:javascript
复制
docker build -t <镜像名称> -f <Dockerfile> <构建上下文>
# -t:指定镜像名称
# -f:指定 Dockerfile 文件

6、从本地文件导入镜像

代码语言:javascript
复制
docker load < demo.tar 或 demo.tgz
docker load -i demo.tar 或 demo.tgz

7、导出镜像至本地文件

代码语言:javascript
复制
docker save <镜像名称> > demo.tar
docker save <镜像名称> -o demo.tar
docker save <镜像名称> | gzip > demo.tgz

8、查看本地镜像列表

代码语言:javascript
复制
docker image ls
docker images

9、删除本地镜像

代码语言:javascript
复制
docker rmi -f <镜像名称或镜像ID>

10、查看镜像历史

代码语言:javascript
复制
docker history <镜像名称或ID>
# --no-trunc:显示完整构建记录

容器操作命令

1、运行容器

代码语言:javascript
复制
docker run -itd -v <主机目录或数据卷>:<容器目录>:<权限>  <镜像名称>  bash
# -i:允许交互
# -t:打开终端
# -d:后台运行
# -v:指定主机与容器的目录映射,默认权限是读写rw
# -p:指定主机与容器的端口映射,格式为:主机端口:容器端口/IP
# -e:指定环境变量,格式为:key=value
# --name:指定容器名称
# --env-file:指定配置文件
# --add-host:向容器的/etc/hosts文件中添加host解析,格式为:"HOST:IP"

2、重启容器

代码语言:javascript
复制
docker restart <容器名称或容器ID>

3、停止容器

代码语言:javascript
复制
docker stop <容器名称或容器ID>

4、查看容器列表

代码语言:javascript
复制
docker container ls
docker ps
# -a:显示所有状态的容器
# -q:仅显示容器ID
# -s:显示容器文件大小,等价于
## docker ps --format '{{.Names}}\t{{.Size}}'
## docker ps —-format 'table {{json .Names}}\t{{json .Size}}'

5、查看容器进程

代码语言:javascript
复制
docker top <容器名称或容器ID>

6、查看容器资源使用情况

代码语言:javascript
复制
docker stats
# --no-stream:只输出一次结果,非连续显示

7、查看容器日志

代码语言:javascript
复制
docker logs -f <容器名称或容器ID>
# -f:刷新实时日志

8、查看容器实时事件

代码语言:javascript
复制
docker events --since/--until "过滤条件"
# 过滤条件可以为日期、时间、h、m、s

9、查看容器元信息

代码语言:javascript
复制
docker inspect --format '{{ json .State.Status }}' <容器名或容器ID>

10、删除容器

代码语言:javascript
复制
docker rm -f <容器名称或容器ID>

11、将容器打包成镜像

代码语言:javascript
复制
docker commit -a "作者信息" -m "摘要信息" <容器名称> <镜像名称>
# 实质:保存容器的最终状态
# 缺点:无法打包映射目录的内容;存在冗余数据

12、进入容器

代码语言:javascript
复制
docker exec -it <容器名或容器ID> bash
 
# 不进入容器执行命令(在脚本中、crontab中需要去掉-i或-t)
docker exec -it <容器名或容器ID> bash -c '命令'

网络操作命令

1、查看容器网络

代码语言:javascript
复制
docker network ls

2、创建容器网络

代码语言:javascript
复制
docker network create --driver bridge --subnet xx.xx.xx.xx/xx --gateway xx.xx.xx.1 <网络名称>
# 自动创建的默认网段为172.18.0.0/16
# --driver:指定网络模式,包括 bridge(网桥模式)、host(主机模式)、container(容器模式)和 none
# --subnet:指定网段
# --gateway:指定网关

3、删除容器网络

代码语言:javascript
复制
docker network rm <网络名称>

4、查看容器网络元信息

代码语言:javascript
复制
docker network inspect <网络名称>

5、新增网络关联

代码语言:javascript
复制
docker network connect <网络名称> <容器名或容器ID>

6、删除网络关联

代码语言:javascript
复制
docker network disconnect -f <网络名称> <容器名或容器ID>

数据卷操作命令

1、查看数据卷

代码语言:javascript
复制
docker volume ls

2、创建数据卷

代码语言:javascript
复制
docker volume create my-vol

3、删除数据卷

代码语言:javascript
复制
docker volume rm my-vol

4、查看数据卷元信息

代码语言:javascript
复制
docker volume inspect my-vol

其它操作命令

1、查看 Docker 信息

代码语言:javascript
复制
docker info

2、查看占用空间

代码语言:javascript
复制
# 查看镜像、容器、数据卷占用的空间
docker system df

3、清理数据

代码语言:javascript
复制
# 全面清理镜像、容器、网络、缓存
docekr system prune -a -f
# -a 或 --all:可以一并清除所有未使用的镜像和悬空镜像
# -f 或 --force:用以忽略相关告警确认信息
# 等价于以下的合集:
docker image prune            #清理镜像
docker container prune        #清理容器
docker network prune          #清理网络
docker builder prune          #清理缓存(低版本没有这个命令)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 实施运维知识交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档