Docker—入门解析,部署和镜像加速
一.基本概念
docker的官网https://www.docker.com/
帮助文档:https://docs.docker.com/
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
设计目标:
1.提供简单的应用程序打包工具
2.开发人员和运维人员职责逻辑分离
3.多环境保持一致性
Docker的组成:
Docker Client: 客户端
Docker Daemon:守护进程
Docker Images: 镜像
Docker Container: 容器
Docker Registry: 镜像仓库
Dockerd 架构:(可参考官方文档)
- docker使用c/s架构,client通过接口与server进程通信实现容器的构建,运行和发布
- client和server可以运行在同一台集群中,也可以实现跨主机远程通信
docker与传统虚拟化的比较:
Container | VM | |
---|---|---|
启动速度 | 秒级 | 分钟级 |
运行性能 | 接近原生 | 5%左右损失 |
磁盘占用 | MB | GB |
数量 | 成千上万 | 一般几十台 |
隔离性 | 进程级别 | 系统级(更彻底) |
操作系统 | 支持Linux | 几乎所有 |
封装程度 | 只打包项目代码和依赖关系,共享主机内核 | 完整的操作系统 |
Docker版本:
社区版(Community Edition,CE)
企业版( Enterprise Edition,EE)
Docker的优势:
1.更加快速的交付和部署
2.高效的部署和扩容
3.更高的资源利用率
4.更简单的管理
二.Docker的部署和镜像加速
1.安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
2.因为本地没有docker源,所以得加载docker源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost yum.repos.d]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo docker-ce.repo
3.安装docker
yum install -y docker-ce
4.关闭防火墙
systemctl stop firewalld
setenforce 0
5.开启docker服务,永久开启
systemctl start docker.service
systemctl enable docker.service
6.查看镜像
docker search nginx
7.由于直接下载很慢,镜像也比较大,所以我们进行镜像加速,开启阿里云的镜像加速
[root@localhost yum.repos.d]# cd /etc/docker/
[root@localhost docker]# ls
key.json
[root@localhost docker]# tee /etc/docker/daemon.json <<-'EOF'
> {
> "registry-mirrors": ["https://gklcnot2.mirror.aliyuncs.com"]
> }
> EOF
{
"registry-mirrors": ["https://gklcnot2.mirror.aliyuncs.com"]
}
[root@localhost docker]# ls
daemon.json key.json
[root@localhost docker]# cat daemon.json
{
"registry-mirrors": ["https://gklcnot2.mirror.aliyuncs.com"]
}
[root@localhost docker]#
8.重新加载并重启docker
[root@localhost docker]# systemctl daemon-reload
[root@localhost docker]# systemctl restart docker
9.下载镜像并查看:
[root@localhost docker]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
c499e6d256d6: Pull complete
74cda408e262: Pull complete
ffadbd415ab7: Pull complete
Digest: sha256:282530fcb7cd19f3848c7b611043f82ae4be3781cb00105a1d593d7e6286b596
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ed21b7a8aee9 9 days ago 127MB
IMAGE ID CREATED SIZE
nginx latest ed21b7a8aee9 9 days ago 127MB
[root@localhost docker]#