Docker Image
1. Docker Image 概述
1.1. 什么是 Image
- 文件和meta data的集合(root filesystem)
- 分层的,并且每一层都可以添加改变删除文件,成为一个新的 image
- 不同的image可以共享相同的layer
- Image本身是read-only的
2. Image 的获取
- Build from Dockerfile
- Pull from Registry
3. Image 的发布
需要在 docker hub 上注册账号
3.1. 直接发布镜像
- image 的名字
account_id/image_name
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username:
Password:
Login Succeeded
$ docker push ${image_name}:tag
3.2. 通过 Github/Bitbucket 发布
3.3. 搭建本地镜像仓库并发布
- image 的名字
registry_host:port/image_name
$ docker run -d -p 5000:5000 --restart always --name registry registry:2
$ docker push ${image_name}:tag
tips: push 的时候报 registry 不可信任
- 将 registry 地址写入 daemon.json
$ echo "{ \"insecure-registries\": [\"registry_host:port\"] }" >/etc/docker/daemon.json
- 将添加 daemon.json 到 docker 的 runtime 中
$ vi /lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target
Wants=docker-storage-setup.service
Requires=docker-cleanup.timer
[Service]
Type=notify
NotifyAccess=main
EnvironmentFile=-/etc/docker/daemon.json
EnvironmentFile=-/run/containers/registries.conf
EnvironmentFile=-/etc/sysconfig/docker
… …
- 重启 docker 服务
$ systemctl restart docker
4. Image 相关命令
4.1. 查看 Images
$ docker image ls
$ docker images
4.2. 移除 Image
$ docker image rm ${image_id}
$ docker rmi ${image_id}
4.3. 查看 Image 分层
$ docker history ${image_id}
参考文档: