互联网产品思考互联网科技程序员

docker容器技术学习笔记(1)

2018-08-22  本文已影响3人  阳一yayi

一、鸟瞰容器生态系统

Docker 现在几乎是容器的代名词。确实,是 Docker 将容器技术发扬光大。同时,大家也需要知道围绕 Docker 还有一个生态系统。Docker 是这个生态系统的基石,但完善的生态系统才是保障 Docker 以及容器技术能够真正健康发展的决定因素。下面一图大致列出了整个容器生态圈及其简单介绍:

容器生态系统一览

二、Docker核心组件

Docker 架构如下图所示:

Docker架构图

Docker 采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个 Host 上,客户端也可以通过 socket 或 REST API 与远程的服务器通信。

2.1 DockerFile最常用的指令

ENV MY_VERSION 1.3
RUN apt-get install -y mypackage=$MY_VERSION
Shell 格式
<instruction> <command>

Exec 格式
<instruction> ["executable", "param1", "param2", ...]

CMD 和 ENTRYPOINT 推荐使用 Exec 格式,因为指令可读性更强,更容易理解。RUN 则两种格式都可以。

最佳实践
1、使用 RUN 指令安装应用和软件包,构建镜像。
2、如果 Docker 镜像的用途是运行应用程序或服务,比如运行一个 MySQL,应该优先使用 Exec 格式的 ENTRYPOINT 指令。CMD 可为 ENTRYPOINT 提供额外的默认参数,同时可利用 docker run 命令行替换默认参数。
3、如果想为容器设置默认的启动命令,可使用 CMD 指令。用户可在 docker run 命令行中替换此默认命令。

2.2 Docker 镜像 - Image

docker tag myimage-v1.9.1 myimage:1
docker tag myimage-v1.9.1 myimage:1.9
docker tag myimage-v1.9.1 myimage:1.9.1
docker tag myimage-v1.9.1 myimage:latest

效果:
myimage:1 始终指向 1 这个分支中最新的镜像。
myimage:1.9 始终指向 1.9.x 中最新的镜像。
myimage:latest 始终指向所有版本中最新的镜像。
如果想使用特定版本,可以选择 myimage:1.9.1、myimage:1.9.2 或 myimage:2.0.0。
images    显示镜像列表
history   显示镜像构建历史
commit    从容器创建新镜像
build     从 Dockerfile 构建镜像
tag       给镜像打 tag
pull      从 registry 下载镜像
push      将 镜像 上传到 registry
rmi       删除 Docker host 中的镜像
search    搜索 Docker Hub 中的镜像
上一篇 下一篇

猜你喜欢

热点阅读