Docker 镜像详细讲解
Docker
要求 CentOS
系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 CentOS
版本是否支持Docker
uname -r
使用 root 权限登录 CentOS。确保 yum 包更新到最新
sudo yum update
sudo yum remove docker docker-common docker-selinux docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
官方源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
阿里云源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清华大学源
sudo yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce
yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-版本号.ce
sudo systemctl start docker
sudo systemctl enable docker
docker version
Docker CE 支持以下版本的 Ubuntu 操作系统:
Artful 17.10 (Docker CE 17.11 Edge +) Xenial 16.04 (LTS) Trusty 14.04 (LTS)
Docker CE 可以安装在 64 位的 x86平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本,当前最新的 LTS 版本为 Ubuntu 16.04。
docker-engine
,使用以下命令卸载旧版本:sudo apt-get remove docker \
docker-engine \
docker.io
使用脚本自动安装
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror AzureChinaCloud
sudo systemctl enable docker
sudo systemctl start docker
先执行命令:apt-get autoremove docker-ce
删除 /etc/apt/sources.list.d 目录下的 docker.list 文件
Docker 镜像加速器
Docker 官方提供的中国 registry mirror 阿里云加速器 DaoCloud 加速器
DOCKER_OPTS="--registry-mirror=https://xxxxxxxx.mirror.aliyuncs.com"
sudo service docker restart
{
"registry-mirrors": [
"https://xxxxxxxx.mirror.aliyuncs.com"
]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
Registry Mirrors:
https://xxxxxxxx.mirror.aliyuncs.com
Docker 镜像
docker pull
Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号] 。默认地址是 Docker Hub。
$ docker pull ubuntu:16.04
16.04: Pulling from library/ubuntu
4f53fa4d2cf0: Pull complete
6af7c939e38e: Pull complete
903d0ffd64f6: Pull complete
04feeed388b7: Pull complete
Digest: sha256:185fec2d6dbe9165f35e4a1136b4cf09363b328d4f850695393ca191aa1475fd
Status: Downloaded newer image for ubuntu:16.04
docker.io/library/ubuntu:16.04
$ docker run -it --rm \
ubuntu:16.04 \
bash
root@e7009c6ce357:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.4 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
it :这是两个参数,一个是 -i :交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。 --rm :这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm 。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。 ubuntu:16.04 :这是指用 ubuntu:16.04 镜像为基础来启动容器。 bash :放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash。
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 5f515359c7f8 5 days ago 183 MB
nginx latest 05a60462f8ba 5 days ago 181 MB
mongo 3.2 fe9198c04d62 5 days ago 342 MB
<none> 00285df0df87 5 days ago 342 MB
ubuntu 16.04 f753707788c5 4 weeks ago 127 MB
ubuntu latest f753707788c5 4 weeks ago 127 MB
ubuntu 14.04 1e0c3dd64ccd 4 weeks ago 188 MB
docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 24 0 1.992GB 1.992GB (100%)
Containers 1 0 62.82MB 62.82MB (100%)
Local Volumes 9 0 652.2MB 652.2MB (100%)
Build Cache
<none> <none> 00285df0df87 5 days ago 342 MB
$ docker image ls -f dangling=true
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 00285df0df87 5 days ago 342 MB
docker image prune
3.2.3 中间层镜像
docker image ls -a
docker image ls ubuntu
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 f753707788c5 4 weeks ago 127 MB
ubuntu latest f753707788c5 4 weeks ago 127 MB
ubuntu 14.04 1e0c3dd64ccd 4 weeks ago 188 MB
docker image ls ubuntu:16.04
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 f753707788c5 4 weeks ago 127 MB
docker image ls -f since=mongo:3.2
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 5f515359c7f8 5 days ago 183 MB
nginx latest 05a60462f8ba 5 days ago 181 MB
docker image ls -f label=com.example.version=0.1
...
$ docker image ls -q
5f515359c7f8
05a60462f8ba
fe9198c04d62
00285df0df87
f753707788c5
f753707788c5
1e0c3dd64ccd
$ docker image ls --format "{{.ID}}: {{.Repository}}"
5f515359c7f8: redis
05a60462f8ba: nginx
fe9198c04d62: mongo
00285df0df87: <none>
f753707788c5: ubuntu
f753707788c5: ubuntu
1e0c3dd64ccd: ubuntu
docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
docker image rm [选项] <镜像1> [<镜像2> ...]
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0584b3d2cf6d 3 weeks ago 196.5 MB
redis alpine 501ad78535f0 3 weeks ago 21.03 MB
docker latest cf693ec9b5c7 3 weeks ago 105.1 MB
nginx latest e43d811ce2f4 5 weeks ago 181.5 MB
$ docker image rm 501
Untagged: redis:alpine
Untagged: redis@sha256:f1ed3708f538b537eb9c2a7dd50dc90a706f7debd7e1196c9264edeea521a86d
Deleted: sha256:501ad78535f015d88872e13fa87a828425117e3d28075d0c117932b05bf189b7
Deleted: sha256:96167737e29ca8e9d74982ef2a0dda76ed7b430da55e321c071f0dbff8c2899b
Deleted: sha256:32770d1dcf835f192cafd6b9263b7b597a1778a403a109e2cc2ee866f74adf23
Deleted: sha256:127227698ad74a5846ff5153475e03439d96d4b1c7f2a449c7a826ef74a2d2fa
Deleted: sha256:1333ecc582459bac54e1437335c0816bc17634e131ea0cc48daa27d32c75eab3
Deleted: sha256:4fc455b921edf9c4aea207c51ab39b10b06540c8b4825ba57b3feed1668fa7c7
$ docker image rm centos
Untagged: centos:latest
Untagged: centos@sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c
Deleted: sha256:0584b3d2cf6d235ee310cf14b54667d889887b838d3f3d3033acd70fc3c48b8a
Deleted: sha256:97ca462ad9eeae25941546209454496e1d66749d53dfa2ee32bf1faabd239d38
$ docker image ls --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
node slim sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228 6e0c4c8e3913 3 weeks ago 214 MB
$ docker image rm node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228
Untagged: node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228
docker image rm $(docker image ls -q redis)
docker image rm $(docker image ls -q -f before=mongo:3.2)
来源:CSDN 博客
(版权归原作者所有,侵删)
10T 技术资源大放送!包括但不限于:Linux、虚拟化、容器、云计算、网络、Python、Go 等。在开源Linux公众号内回复「10T」,即可免费获取!
shell编程100例(附PDF下载)
IPv6技术白皮书(附PDF下载)
Linux主流发行版本配置IP总结(Ubuntu、CentOS、Redhat、Suse)
批量安装Windows系统
无人值守批量安装服务器
运维必备的《网络端口大全》,看这一份就够了。
收藏:服务器和存储知识入门
什么叫SSH?原理详解,看这一篇就够了!
Nginx面试40问(收藏吃灰)
20 个 Linux 服务器性能调优技巧
超详细!一文带你了解LVS四层负载均衡企业级实践!
收藏 | Linux系统日志位置及包含的日志内容介绍
100 道 Linux 常见面试题,建议收藏,慢慢读~
服务器12种基本故障+排查方法
IT运维管理常用工具大全,让你成为真正的高手
什么是QoS?
有收获,点个在看
shell编程100例(附PDF下载)
IPv6技术白皮书(附PDF下载)
Linux主流发行版本配置IP总结(Ubuntu、CentOS、Redhat、Suse)
批量安装Windows系统
无人值守批量安装服务器
运维必备的《网络端口大全》,看这一份就够了。
收藏:服务器和存储知识入门
什么叫SSH?原理详解,看这一篇就够了!
Nginx面试40问(收藏吃灰)
20 个 Linux 服务器性能调优技巧
超详细!一文带你了解LVS四层负载均衡企业级实践!
收藏 | Linux系统日志位置及包含的日志内容介绍
100 道 Linux 常见面试题,建议收藏,慢慢读~
服务器12种基本故障+排查方法
IT运维管理常用工具大全,让你成为真正的高手
什么是QoS?
有收获,点个在看