Docker Architecture(docker体系结构)
- Docker daemon  守护进程
- containers:容器
 - images:镜像
 
 - Docker client
 - Docker registries 镜像仓库
 
Docker Images
- Docker镜像含有启动容器所需要的文件系统及其内容,因此其用于创建并启动docker容器
 - 采用分层构建机制,最底层为bootfs,其之为rootfs
- bootfs:用于系统引导的文件系统,包括bootloader和kernel,容器启动完成后会被卸载以节约内存资源。
 - rootfs:位于bootfs上,表现为docker容器的根文件系统。docker中rootfs由内核挂载为“只读”模式,而后通过“联合挂载”技术额外挂载一个“可写”层。
 
 
安装docker
依赖环境
- 64 bits CPU
 - Linux Kernel 3.10+
 
Docker Daemon
- systemctl start docker.service
 
Docker Client
- docker [OPTIONS] COMMAND [arg…]
 
1  | 1.下载yum源  | 
配置文件
- docker-ce:
- 配置文件:/etc/docker/daemon.json ,docker启动之前不存在可自行定义创建,启动之前就自动生成。
1
2
3
4
5
6
7
8
9{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
# 阿里云镜像
{
"registry-mirrors": ["https://6ucotgoh.mirror.aliyuncs.com"]
}
# systemctl daemon-reload
# systemcctl start docker 
 - 配置文件:/etc/docker/daemon.json ,docker启动之前不存在可自行定义创建,启动之前就自动生成。
 
容器相关命令
- docker image pull nginx:1.14-alpine : 下载镜像
 - docker run –name web1 -d nginx:1.14-alpine :运行容器
 - docker inspect web1 :查看容器信息
 - docker container stop b1:停止容器
 - docker kill b1:强制关闭容器
 - docker rm b1:删除容器
 - docker rmi busybox:删除镜像
 - docker ps -a:查看容器状态
 - docker exec -it redis1 /bin/sh:交互式进入容器,并执行/bin/sh
 - docker logs web1:查看容器日志
 - docker inspect mysql5.7 -f { {.Mounts} } :查看容器指定key的键值
如果不能自动补全docker命令,安装yum install -y bash-completion,然后退出当前终端重新连接。 

Registry(repository and index)
- Repository
- 由某特定的docker镜像的所有迭代版本组成的镜像仓库。
 - 一个Registry中可以存多个Repository
 - Repository可分为“顶层仓库”和“用户仓库”,用户仓库名称格式为“用户名/仓库名”
 - 每个仓库可以包含多个Tag(标签),每个标签对应一个镜像。
 
 - Index
- 维护用户账户、镜像的校验以及公共命名空间的信息。
 - 相当于为Registry提供了一个完成用户认证等功能的检索接口。
 
 
Docker Hub
本地dckerfile变动发送到github,github推送到dockerhub自动构建为镜像。
- Image Repositories:镜像仓库
 - Automated Builds:自动构建,dockerfile
 - Webhooks:触发构建
 - Oraganizations:组织,创建工作组
 - GitHub and Bitbucket Integration:整合github、bitbucket
 
1  | # 下载镜像仓库指定镜像  | 
镜像生成方式
- Dockerfile
 - 基于容器制作
 - Docker Hub automated builds
 

基于容器制作
1  | 1、运行一个容器  | 
阿里云docker镜像仓库
1  | 1、控制台开通镜像仓库服务(设置仓库密码)  | 
镜像分享
- 镜像仓库:通过push到镜像仓库,需要镜像的再pull到服务器。
 - 镜像打包:打包相关镜像,再scp到其他服务器。
1
2
3
4
5
6# 镜像打包
docker save -o myimages.gz key1024/test:v0.1 key1024/test:v0.2
# copy镜像
scp myimages.gz node02:/data
# load镜像
docker load -i myimages.gz