Docker学习(一)
参考:https://www.runoob.com/docker/docker-tutorial.html
- Docker简介
是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux机器,也可以实现虚拟化。容器完全使用沙箱极制,相互之间不会有任何接口,更重要的是容器性能开销极低
-
Docker的应用场景
- web应用的自动化打包和发布,
- 自动化测试和持续集成、发布
- 在服务型环境中部署和调整数据库或其他的后台应用 -
Docker架构
Docker包括三个基本概念
-
镜像(Image):Docker镜像,相当于是一个root文件系统,比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统
-
容器(Container):镜像(Image)和容器(Container)的关系,像面对程序设计中的类和实例一样,镜像是静态的定义,容器时镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停
-
仓库(Repository):仓库可以看成一个代码控制中心,用来保存镜像
Docker使用C/S架构模式,使用远程API来管理和创建Docker容器
Docker容器通过Docker镜像创建
其他:
Docker客户端(Client):Docker客户端通过命令行或者其他工具使用Docker SDK(https://docs.docker.com/develop/sdk/)与Docker的守护进程通信
Docker主机(Host):一个物理或者虚拟的机器用于执行Docker守护进程和容器
Docker Registry:Docker仓库用来保存镜像。Docker Hub(https://hub.docker.com/)提供了庞大的镜像集合供使用,一个Docker Registry可以包含多个仓库(Repository),每个仓库可以包含多个标签(Tag),每个标签对应一个镜像。通常,一个仓库会包含同1个软件不同版本的镜像,标签基于常用于对应软件的各个版本,可以通过<仓库>:<标签>的格式来指定具体是这个软件的哪个版本,如果不给出标签,以latest作为默认标签。
Docker Machine:是一个简化Docker安装的命行化工具,通过一个简单的命令可在相应的平台上安装docker.
-
安装docker
Docker支持以下的常用操作系统:
Ubuntu
debian
centos7/8 以及更高版本 64位centos版本
windows
macos
注意:docker对内核以及环境要求较高
-
安装Docker Engine-Community
使用Docker仓库进行安装
在主机上首次安装Docker Engine-Community之前,需要设置Docker仓库,之后也可以从仓库安装docker
1.1 安装依赖工具
安装所需要的软件包/依赖工具,yum-utils提供了yum-config-manager,并且device mapper存储驱动程序需要device-mapper-persistent-data和lvm2
yum install -y yum-utils device-mapper-persistent-data lvm2
1.2 添加yum源
因为docker不是yum源所包含的软件,需要添加软件源信息,添加之后,yum会更快速访问安装
使用以下命令设置仓库
阿里云(国内源,比较推荐)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
官方源(比较慢,适合国外)
yum-config-manager --add-repo https:**//download.docker.com/linux/centos/**docker-ce.repo
添加yum仓库后,可查看docker仓库
ls -al /etc/yum.repos.d/
1.3 更新yum缓存
yum makecache fast
1.4 查看仓库中的docker版本,按版本从高到低对结果进行排序
yum list docker-ce --showduplicates|sort -r
1.5 安装Docker Engine-Community(在线安装)
安装最新版
yum install -y docker-ce
安装指定版本
yum install docker-ce-版本号
注意:docker 安装之后默认不启动,需要手动启动
1.6 启动Docker()
systemctl start docker
注意:如果启动不成功,需要修改docker私有仓库,文件不存在则需要新增
vi /etc/docker/daemon.json
{
“registry-mirrors”: [“https://docker.das-security.cn”],
“insecure-registries”: [],
“log-driver”: “json-file”,
“log-opts”: {
“max-size”: “200m”,
“max-file”: “3”
}
}加入开机启动
systemctl enable docker
验证是否安装成功
docker version
备注:
1)在安装docker之前需要先检查是否docker已经安装
yum list intsalled |grep docker
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IxbiSwWw-1641780199282)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211216124230822.png)]
2)如果存在需要移除旧的版本
yum remove docker\
-
Docker镜像加速
国内DockerHub拉取镜像时比较困难,可以配置镜像加速器,例如:
-
科大镜像:https://docker.mirrors.ustc.edu.cn/
-
网易:https://hub-mirror.c.163.com/
-
阿里云:https://<你的ID>.mirror.aliyuncs.com(阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了:)
-
七牛云加速器:https://reg-mirror.qiniu.com
-
百度云加速器
https://mirror.baidubce.com
由于镜像服务可能出现宕机,建议配置多个镜像。国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。
针对centos7,需要执行命令查看docker.service文件中配置过镜像地址
systemctl cat docker |grep
\-\-registry\-mirror
如果有输出,执行systemctl cat docker 查看Execstart 出现的位置,修改对应的文件内容,去掉–registry-mirror参数及值
如果没有输出,可以在/etc/docker/daemon.json 中写入以下内容(文件不存在需要新建):
{ "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] }
-
之后重新启动服务
systemctl daemon-reload
systemctl restart docker
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
之后重新启动服务
systemctl daemon-reload
systemctl restart docker