目录
(2)选择docker-ce,根据相应系统和版本跟着文档进行操作
一.docker简介
docker是一个开源的应用容器引擎(可以理解为软件集中平台),可以很容易地为任何应用创建一个轻量级、可移植、自给自足的容器,经过测试通过的容器可以批量应用在bare、vms等生产环境中。各容器本身是相互隔离的,相较于虚拟机来说,容器不包含操作系统,共用宿主机的操作系统和运行时库。
二.docker的优点
1.交付和部署速度快
一次创建配置,在任意地方正常运行,docker快速创建容器,快速迭代应用程序,过程透明,秒级启动,开发测试更快且更容易理解和部署
2.高效虚拟化
Docker是内核级的虚拟化,效率更高,性能更接近原生,单机即可支持上千个容器
3.迁移性和扩展性强
Docker容器在开发完成后几乎可以在任何平台使用,物理机/虚拟机、公有云/私有云、个人电脑/服务器设备等,极强的兼容性也允许用户把应用程序进行异平台迁移
4.管理简单
对Docker的修改都是增量的方式,简单几步即可替代以往大量繁琐步骤
三.docker的基本概念和组件
docker daemon:docker的守护进程,是docker引擎的核心组件,作用受管理docker的镜像、容器、网络等对象,处理api请求并与客户端通信
docker client:docker客户端,是对于用户来说与docker daemon进行命令交互的工具,用户在此执行容器构建、运行、停止等操作
docker image:镜像是用于创建docker的只读模板,镜像中包含有运行应用程序需要的所有文件系统、配置等,当然这一步可以通过自定义的方式来制作镜像
docker container:docker容器时基于镜像运行起来的,容器与容器之间是相互隔离的运行环境,容器内部可以运行一个或多个应用程序。
docker registry:docker注册表是用存储和分发镜像的仓库,这一步也可以自己搭建私人的镜像仓库,如harbor
docker runtime:容器运行时,负责在宿主机上创建、运行和管理容器的组件,实际负责实际容器的生命周期管理、与容器引擎交互等,常见的有containerd,cri-o
docker network driver:容器网络驱动,负责处理容器网络通信的组件,负责提供夸容器通信、容器与宿主机通信以及与外部通信的能力。
四.docker的安装部署
1.yum方式安装根据阿里云提供额度方式安装
(1)点击容器
(2)选择docker-ce,根据相应系统和版本跟着文档进行操作
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 #安装必要工具
[root@localhost~]#yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #新增源
[root@localhost ~]# sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo #修改源文件
[root@localhost ~]# yum makecache fast #更新
[root@localhost ~]# yum -y install docker-ce #安装docker-ce
[root@localhost ~]# yum list docker-ce.x86_64 --showduplicates | sort -r #可以通过这行命令找到自己想要安装的具体版本,默认是安装最新版本
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker version #查看docker版本
Client: Docker Engine - Community
Version: 24.0.5
API version: 1.43
Go version: go1.20.6
Git commit: ced0996
Built: Fri Jul 21 20:39:02 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.5
API version: 1.43 (minimum version 1.12)
Go version: go1.20.6
Git commit: a61e2b4
Built: Fri Jul 21 20:38:05 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.22
GitCommit: 8165feabfdfe38c65b599c4993d227328c231fca
runc:
Version: 1.1.8
GitCommit: v1.1.8-0-g82f18fe
docker-init:
Version: 0.19.0
GitCommit: de40ad0
(3)配置docker镜像加速
[root@localhost ~]# cd /etc/docker/
[root@localhost docker]# ll
total 0
[root@localhost docker]# vim daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
#使用的是中国科技大学的镜像加速器,也可以选择阿里云的
[root@localhost docker]# systemctl daemon-reload #重载配置并重启
[root@localhost docker]# systemctl restart docker
2.二进制安装
(1)下载资源包
链接:https://pan.baidu.com/s/1GEvLl_Jruxs56xAa6bYN4g
提取码:t8c8
[root@localhost docker]# tar -xvf docker-24.0.5.tgz
[root@localhost docker]# cp docker/* /usr/bin/
(2)配置docker service
[root@localhost docker]# vim /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
(3)重载配置文件启动docker并拉取镜像测试
[root@localhost docker]# systemctl daemon-reload
[root@localhost docker]# systemctl start docker.service
[root@localhost docker]# docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
ec562eabd705: Pull complete
Digest: sha256:5eef5ed34e1e1ff0a4ae850395cbf665c4de6b4b83a32a0bc7bcb998e24e7bbb
Status: Downloaded newer image for busybox:latest
docker.io/library/busybox:latest
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest e784f4560448 3 weeks ago 188MB
busybox latest 65ad0d468eb1 12 months ago 4.26MB
3.配置镜像加速
[root@localhost ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": [
"http://74f21445.m.daocloud.io",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn" ],
"exec-opts": ["native.cgroupdriver=systemd"]
}