1. Docker组件
- Docker 客户端:Client
- Docker 服务器: Docker daemon
- Docker 镜像: Image
- Registry
- Docker 容器: Container
Docker 采用的是Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。
客户端和服务器可以运行在同一个Host上,客户端也可以通过socket或RESTAPI与远程的服务器通信。
2. Docker 客户端
最常用的 Docker 客户端是 docker 命令。通过 docker 我们可以方便地在 Host 上构建和运行容器。
3. Docker 服务器
Docker daemon 是服务器组件,以Linux 后台服务的方式运行.
- Docker daemon 运行在 Docker host 上,负责创建、运行、监控容器,构建、存储镜像。默认配置下,Docker daemon 只能响应来自本地 Host 的客户端请求。如果要允许远程客户端请求,需要在配置文件中打开 TCP 监听,步骤如下:
(1) 编辑配置文件/etc/systemd/system/multi-user.target.wants/docker.service
或者/usr/lib/systemd/system/docker.service
,在环境变量Exec Start 后面添加-H tcp://0.0.0.0
,允许来自任意 IP 的客户端连接
(2) 重启Docker Daemon
systemctl daemon-reload
systemctl restart docker.service
(3) 远程访问
docker -H 192.168.56.102 ps
4. Docker 镜像
-
可将 Docker 镜像看成只读模板,通过它可以创建 Docker 容器。例如某个镜像可能包含一个Ubuntu操作系统、一个Apache HTTP Server 以及用户开发的Web 应用。
-
镜像有多种生成方法:
- (1)从无到有开始创建镜像;
- (2)下载并使用别人创建好的现成的镜像;
- (3)在现有镜像上创建新的镜像。
-
可以将镜像的内容和创建步骤描述在一个文本文件中,这个文件被称作
Dockerfile
,通过执行docker build <docker-file>
命令可以构建出 Docker 镜像。
5. Docker 容器
Docker 容器就是 Docker 镜像的运行实例。用户可以通过CLI(Docker)或是API启动、停止、移动或删除容器。对于应用软件,镜像是软件生命周期的构建和打包阶段,而容器则是启动和运行阶段。
6.Registry
- Registry 是存放Docker镜像的仓库,Registry 分私有和公有两种。Docker Hub(https://hub.docker.com/)是默认的 Registry,由 Docker 公司维护,上面有数以万计的镜像,用户可以自由下载和使用。
- 出于对速度或安全的考虑,用户也可以创建自己的私有Registry。
- docker pull 命令可以从 Registry 下载镜像。
- docker run 命令则是先下载镜像(如果本地没有),然后再启动容器。