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 2019-06-30 21:07  透明的洪湖里  阅读(176)  评论(0编辑  收藏  举报