更新于 

Docker镜像命令

  • 什么是Docker镜像
  Docker镜像是由文件系统叠加而成(是一种文件的存储形式)。最底端是一个文件引导系统,即bootfs,这很像典型的Linux/Unix的引导文件系统。Docker用户几乎永远不会和引导系统有什么交互。实际上,当一个容器启动后,它将会被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存供磁盘镜像使用。Docker容器启动是需要的一些文件,而这些文件就可以称为Docker镜像。

5.1 查看镜像

1
2
3
4
5
6
7
#查看镜像
docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
nacos/nacos-server latest 00b7582cb6e6 5 days ago 724MB
grafana/grafana latest 322e0a666176 11 days ago 233MB
gitlab/gitlab-ce latest e6b464b98aff 12 days ago 1.92GB
  • 返回描述:

    REPOSITORY TAG IMAGE ID CREATED SIZE
    镜像名称 镜像标签 镜像ID 镜像的创建日期(不是获取该镜像的日期 镜像大小
  • 注意:这些镜像都是存储在Docker宿主机的/var/lib/docker目录下

5.2 搜索镜像

如果你需要从网络中查找需要的镜像,可以通过以下命令搜索

1
2
3
4
5
6
7
8
9
#docker search 镜像名称
[root@gitlab ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 9634 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3500 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 702 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 77
mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 69

NAME DESCRIPTION STARS OFFICIAL AUTOMATED
仓库名称 镜像描述 用户评价,反应一个镜像的受欢迎程度 是否官方 自动构建,表示该镜像由Docker Hub自动构建流程创建的

5.3 拉取镜像

拉取镜像就是从中央仓库中下载镜像到本地

1
#docker pull 镜像名称

例如,我要下载centos7镜像

1
2
3
4
5
sudo docker pull centos:7
#默认latest
sudo docker pull mysql
#指定版本
sudo docker pull mysql:5.7

5.4 删除镜像

按镜像ID删除镜像

1
2
3
4
#docker rmi 镜像ID
# 删除指定镜像
sudo docker rmi $IMAGES_ID
sudo docker rmi $REPOSITORY:$TAG

删除所有镜像

1
2
# 删除所有镜像
sudo docker rmi `sudo docker images -q`

5.5、容器保存镜像

1
sudo docker commit -a "Yongzheng" -m "Ubuntu:16" 4968e97f588d ubuntu:16.6

5.6、镜像备份

1
2
# sudo docker save -o 宿主机目录/镜像名.tar $IMAGES_ID/$REPOSITORY:$TAG
sudo docker save -o nginx.tar nginx

5.7、镜像恢复

1
2
# sudo docker load -i 宿主机目录/镜像名.tar
sudo docker load -i nginx.tar

5.8、Dockerfile创建镜像

  • 根据Dockerfile创建

编写好Dockerfile文件,在同级目录下执行shell语句。

  • 注:

Dockerfile的编写请参考官网

1
2
3
4
#server:v1.0  server为镜像名字   v1.0为TAG(标签)    
# . 代表DockerFile 与当前目录为同级目录
sudo docker build -t server:v1.0 .
sudo docker build -t registry.cn-hangzhou.aliyuncs.com/yongzheng/jenkins:lts