Docker images
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker images相关的知识,希望对你有一定的参考价值。
Docker 码头工人
Docker中镜像可理解为:应用程序的集装箱
Docker Images
Docker镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动docker容器
采用分层构建机制,最底层为bootfs,其之为rootfs
bootfs:用于系统引导的文件系统,包括bootloader和kernel,容器启动完成后会被卸载以节约内存资源
注意:当删除容器时,这个容器自有的“可写”层会一起被删除
Aufs
Advanced multi-layered unification filessystem:高级多层统一文件系统
Docker Registry
启动容器时,docker daemon会试图从本地获取相关的镜像;本地镜像不存在时,其将从Registry中下载该镜像并保存到本地;
注意:Registry如果没有指定,只给了仓库名和tag,则默认使用的是Docker hub;如果指向别的Registry需要修改配置给明服务器地址
除了Docker Hub还有其他镜像仓库,如:https://quay.io/
Docker Registry分类
Sponsor Registry:第三方的registry,供客户和Docker社区使用
Mirror Registry:第三方的registry,只让客户使用
Vendor Registry:由发布Dcoker镜像的供应商提供的registry
Private Registry:通过设有防火墙和额外的安全层的私有实体提供的registry
Docker Hub
功能:
镜像仓库
自动构建;web构子
组织
GitHub和Bitbucket
制作镜像
Dockerfile
基于容器制作
Docker Hub automated builds
基于容器制作容器
简单示例1:让Busybox容器启动时就有index.html网页文件;
使用docker commit命令
[[email protected] ~]#docker run --name b1 -it busybox WARNING: IPv4 forwarding is disabled. Networking will not work. / # / # mkdir -p /data/html / # echo "Busybox httpd server." > /data/html/index.html
注意:制作容器时让容器处理运行状态所以在另外一个终端执行:
[[email protected] ~]#docker commit -p b1 sha256:db1dfc89367ed1899e85665d6c069e778d66a2cd590d969e761bed77b67cfa23 [[email protected] ~]#docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> db1dfc89367e 7 seconds ago 1.16MB 制作好的容器 nginx alpine 36f3464a2197 10 days ago 18.6MB busybox latest 22c2dd5ee85d 2 weeks ago 1.16MB redis 4.0-alpine 80581db8c700 3 weeks ago 28.6MB centos latest 49f7960eb7e4 2 months ago 200MB
可使用docker tag命令来给镜像打标签;一个镜像可打多个标签
[[[email protected] ~]#docker tag db1dfc89367e liuyutang/httpd:v0.1-1 [[email protected] ~]#docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE liuyutang/httpd v0.1-1 db1dfc89367e 3 minutes ago 1.16MB nginx alpine 36f3464a2197 10 days ago 18.6MB busybox latest 22c2dd5ee85d 2 weeks ago 1.16MB redis 4.0-alpine 80581db8c700 3 weeks ago 28.6MB centos latest 49f7960eb7e4 2 months ago 200MB [[email protected] ~]#docker tag liuyutang/httpd:v0.1-1 liuyutang/httpd:latest [[email protected] ~]#docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE liuyutang/httpd latest db1dfc89367e 5 minutes ago 1.16MB liuyutang/httpd v0.1-1 db1dfc89367e 5 minutes ago 1.16MB nginx alpine 36f3464a2197 10 days ago 18.6MB busybox latest 22c2dd5ee85d 2 weeks ago 1.16MB redis 4.0-alpine 80581db8c700 3 weeks ago 28.6MB centos latest 49f7960eb7e4 2 months ago 200MB
删除标签
[[email protected] ~]#docker image rm liuyutang/httpd:latest Untagged: liuyutang/httpd:latest
启动制作好的容器;可以看到我们刚才写的页面文件存在;容器制作成功
[[email protected] ~]#docker run --name t1 -it liuyutang/httpd:v0.1-1 WARNING: IPv4 forwarding is disabled. Networking will not work. / # ls /data/ html / # ls /data/html/ index.html / # cat /data/html/index.html Busybox httpd server. / #
示例2:使用Busybox做为基础镜像,实现容器启动时默认运行httpd,并且在制作镜像时一起打标签;
[[email protected] ~]#docker commit -a "liuyutang <[email protected]>" -c 'CMD ["/bin/httpd","-f","-h","/data/html"]' -p b1 liuyutang/httpd:v0.2 sha256:f394f28026ff01f0bbdceb665b8e18a26c9a43a9c12cc57e4f895808f52e5f36 [[email protected] ~]#docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE liuyutang/httpd v0.2 f394f28026ff 4 seconds ago 1.16MB liuyutang/httpd latest db1dfc89367e 21 minutes ago 1.16MB liuyutang/httpd v0.1-1 db1dfc89367e 21 minutes ago 1.16MB nginx alpine 36f3464a2197 10 days ago 18.6MB busybox latest 22c2dd5ee85d 2 weeks ago 1.16MB redis 4.0-alpine 80581db8c700 3 weeks ago 28.6MB centos latest 49f7960eb7e4 2 months ago 200MB
以上是关于Docker images的主要内容,如果未能解决你的问题,请参考以下文章
markdown [Docker] Docker片段列表和命令#linux #docker #snippets
使用云原生buildpacks将你的代码转换成Docker Image | 技术干货