Docker简介:
Docker是一个开源的容器引擎,有助于快速的交付应用。Docker可将应用程序和基础设施层隔离,使用docker可更快打包、测试以及部署应用,并可缩短从编写到部署运行代码的周期。
Dockers CE:
Docker ce 是免费的Docker产品名称,Docker CE包含了完整的Docker平台,非常适合开发人员和运维团队构建容器应用。
Docker架构组件:
Docker dasmon(docker 守护进程):docker daemon是一个运行在宿主机(DOCKER_HOST)的后台进程。可通过Docker客户端与之通信。
Images(Docker镜像):Docker镜像是一个只读模板,它包含创建Docker容器的说明。使用Docker镜像可以运行Docker镜像中的程序。
Container(容器):容器是镜像可以运行实例,镜像和容器的关系,类似面向对象中的类和对象的关系。
Registry(注册中心):Docker Registry是一个集中存储与分发镜像的服务。构建完Docker镜像后,就可以在当前宿主机上运行。如果需要在其它机器上运行这个镜像,就需要手动复制。此时可以借助Docker Registry避免镜像的手动复制。
一个Docker Registry可包含多个Docker仓库,每个仓库可包含多个镜像标签,每个标签对应一个Docker镜像,镜像标签tag,类似镜像的版本号。
Docker Registry可分为公有Docker Registry和私有Docker Registry。最常用的Docker Registry莫过于官方的Docker Hub,也是默认的Docekr Registry。
Linxu系统下安装Docker
Centos7安装Docker
要求centos版本是7或更高版本,centos的包管理工具yum
Ubuntu安装Docker
Ubuntu的包管理工具 apt
Dockerfile:
Dockerfile是一个文本文件,其中包含了若干条指令,指令描述了构建镜像的细节。
Docker常用指令:
ADD复制文件
RAG设置构建参数
CMD容器启动指令
COPY复制文件
ENTRYPOINT入口点
ENV设置环境变量
EXPOSE声明暴露的端口
FROM指定基础镜像
LABEL为镜像添加元数据
MAINTAINER指定维护者的信息
RUN执行命令
USER设置用户
VOLUME指定挂载点
WORKDIR指定工作目录
除了dockerfile构建镜像外,还可以使用Maven插件构建Docker镜像。
使用Docker Compose编排微服务
使用Dockerfile可以构建镜像,使用微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例。如果每个微服务都要手动启停,效率低,维护量大。docker compose可以轻松、高效地管理容器。Docker Compose是一个基于Docker的单主机容器编排工具。
Docker Compose简介:
Compose是一个定义和运行多容器Docker应用程序的工具,前身是Fig。非常适合用在开发、测试、构建CI工作流等场景。
安装Docker compose
docker-compose.yml是compose的默认模板文件。
docker-compose version 3的常用命令:
build:配置构建时的选项
command:覆盖容器启动后默认执行的命令
dns:配置DNS服务器
environment:环境变量设置
.env_file:从文件中获取环境变量
expose:暴露端口,只将端口暴露给连接的服务,而不暴露给宿主机。
extrenal_links:连接到docker-compose.yml外部的容器
image:指定镜像名称或镜像ID
linke:连接到其它服务的容器
networks:
network_mode:设置网络模式
ports:暴露端口信息
volumes:卷挂在路径设置
Docker-Compose常用命令:
build:构建或重新构建服务
help:查看帮助文档
logs:查看服务的日志输出
ps:列出所用容器
pull:下载服务镜像
rm:删除指定服务的容器
run:在一个服务上执行一个命令
start:启动指定服务已存在的容器
scale:设置指定服务运行容器个数
stop:停止已运行的容器
up:构建、创建、重新创建、启动、连接服务的相关容器
docker-compose up -d 可在后台启动并运行所有容器
Docker容器网络:
参考资料:《Spring Cloud与Docker微服务架构实战》