Docker-Image

Docker镜像


下载镜像

基本命令

  1. 查询:docker search
  2. 下载:docker pull
  3. 运行:docker run,如果本地没有镜像,会自动从docker hub上pull下来

修改源

修改/etc/docker/daemon.json文件,如果目录下没有该文件就自己创建一个,添加以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"registry-mirrors" : [
"http://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"insecure-registries" : [
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn"
],
"debug" : true,
"experimental" : true
}

随后执行

1
2
3
systemctl daemon-reload

systemctl restart docker

使用docker info检查配置是否正确

docker info

自建镜像

docker的镜像是通过分层实现的,如果我们在一个centos7的容器上安装vim,结构如下:

container(vim)
base-image(centos7)
Kernel

分层结构便于复用镜像,例如镜像如果都是基于centos7的话就可以共用一个。

docker commit

docker commit会将容器封装成一个镜像,之后就可以使用该镜像批量生成容器

1
docker commit [container_name] [new_image_name]

安装vim后提交,随之再新建容器的话,镜像结构就变成:

container
image(vim)
base-image(centos7)
Kernel

Dockerfile

下面是Eureka服务注册发现中心的镜像配置

1
2
3
4
5
6
7
FROM java:8

EXPOSE 7002

ENTRYPOINT ["java", "-jar", "home/app.jar", "--spring.profiles.active=Eureka-7002"]

ADD spike-system-eureka-server-0.0.1-SNAPSHOT.jar home/app.jar

在Dockerfile目录下执行:

1
docker build -t [new_image_name] .

或者你可以理解为:

1
docker build -t [repository]:[tag] .

注意语句后面有一个.

若没有打上tag,默认会使用latest作为tag