docker常用命令

添加镜像加速器

# 在/etc/docker/daemon.json中添加下面内容(如果daemon.json不存在,请新建)
{
	"registry-mirrors": [
		"https://dockerhub.azk8s.cn",
		"https://reg-mirror.qiniu.com"
	]
}

# 重启服务
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

镜像操作

虚悬镜像

# 显示虚悬镜像
docker image ls -f dangling=true

# 清理镜像                                                                                  
docker image prune

显示镜像

# 显示顶级镜像
docker images

# 显示包括中间层镜像在内的所有镜像
docker images -a

# 根据仓库名列出镜像
docker images ubuntu

# 列出特定的某个镜像,也就是说指定仓库名和标签
docker images ubuntu:18.04

# 查看mongo:3.2之后安装的镜像
docker image ls -f since=mongo:3.2

# 查看mongo:3.2之前安装的镜像
docker image ls -f before=mongo:3.2

# 通过LABEL过滤镜像
docker image ls -f label=com.example.version=0.1

# 显示所有镜像的ID
docke images -aq

# 列出镜像ID和仓库名
docker images --format "{{.ID}}: {{.Repository}}"

# 表格等距显示,并且有标题行,和默认一样
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

# 显示摘要
docker images --digests

删除镜像

# 根据ID删除镜像(docker image rm 不一定都会产生删除镜像的行为,有可能仅仅是取消了某个标签而已)
docker image rm ID前三个字母

# 根据镜像名删除镜像
docker image rm centos

# 根据摘要删除镜像


# 配合docker images进行镜像删除
docker image rm $(docker images -q mysql)

运行镜像

  • 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  • 利用镜像创建并启动一个容器
  • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
  • 从地址池配置一个 ip 地址给容器
  • 执行用户指定的应用程序
  • 执行完毕后容器被终止
# 运行指定镜像, 指定端口并命名 
docker run --name 容器名 -d -p 本机端口:镜像内部端口 镜像名:Tag

容器操作

启动容器

# 输出一个 “Hello World”,之后终止容器。(和本地执行 echo "hello world" 没有区别)
docker run ubuntu:18.04 /bin/echo 'Hello world'


# 运行镜像并启动一个 bash 终端,允许用户进行交互。
docker run -it ubuntu:18.04 /bin/bash

# 后台运行容器
docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hel
lo world; sleep 1; done"

# 启动已停止的容器
docker start 容器id

停止容器

docker stop 容器id或名

删除已停止镜像

docker container prune

获取容器的输出信息

docker container logs 容器id或名	字

进入正在运行的容器

docker attach 容器id或名

docker exec -it 容器id或名 bash

attach 和 exec 的区别:
	attach后执行exit会停止容器的运行
	exec后执行exit不会停止容器的运行

比较镜像的变动

docker diff 镜像名

将容器保存成镜像

docker commit -a "Username <Email>"  -m "说明信息" 容器名 镜像名:tag

导出容器

docker export 镜像id > xxx.tar

导入容器

cat ubuntu.tar | docker import - test/ubuntu:v1.0

# 以通过指定 URL 或者某个目录来导入
docker import http://example.com/exampleimage.tgz example/imagerepo

Dockerfile

docker build -t "镜像名:Tag" .	# .的作用是指定上下文的目录

Docker Hub

# 登录
docker login

# 搜索镜像
docker search xxx

# 拉取镜像
docker pull xxx

# 打标签
docker tag ubuntu:18.04 username/ubuntu:18.04

# 推送镜像
docker push username/ubuntu:18.04

posted on   透明的洪湖里  阅读(178)  评论(0编辑  收藏  举报

编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示