前言:实操之前大家应该熟悉一个新的名词DevOps 俗称开发即运维、新一代开发工程师(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合…那我们Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案-----系统平滑移植,容器虚拟化技术。
在我们传统如VMware或者Hyper-V搭建各种业务开发环境相当麻烦,随着换环境,换机器设备等就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。
传统上认为,软件编码开发/测试结束后,所产出的成果即是程序或是能够编译执行的二进制字节码等(java为例)。而为了让这些程序可以顺利执行,开发团队也得准备完整的部署文件,让维运团队得以部署应用程式,开发需要清楚的告诉运维部署团队,用的全部配置文件+所有软件环境。不过,即便如此,仍然常常发生部署失败的状况。Docker的出现使得Docker得以打破过去「程序即应用」的观念。透过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作。
一句话:解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。好吧,不啰嗦了,这里记录下简单docker的部署的记录,关于容器编排集群等大家可根据自身环境及学习去了解。
环境:
1、CentOS-7.9-x86_64-DVD-2009.iso 配置:8U/8G/100G
2、软件包 3:docker-ce-24.0.4-1.el7.x86_64 软件包 1:docker-ce-cli-24.0.4-1.el7.x86_64
————————————————
一、CentOS系统基础环境配置
1、修改主机名(重启系统后生效)
vi hostname
2、将IP设置为静态模式后重启网络,则文件配置成功;
vi /etc/sysconfig/network-scripts/ifcfg-ens33
#将 BOOTPROTO="dhcp"改为 “static”,并添加IP、网关、子网掩码、DNS的信息
3、禁用防火墙和关闭selinux
systemctl disable firewalld
systemctl stop firewalld
##永久关闭
vi /etc/selinux/config
##将SELINUX=enforcing 改为 SELINUX=disabled 然后保存并退出
##临时关闭系统重启后还是会自动开启
setenforce 0
这里部署docker的基础环境已配置完成。
二、开始部署docker
Docker官网参考:https://docs.docker.com/engine/install/centos/
1、确定你是CentOS7及以上版本
cat /etc/redhat-release
2、卸载系统自带的docker版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3、接下来安装几个必要组件(如gcc),但我这边就直接update了,毕竟我们虚拟机是要做大事的,避免每次都单独安装。这里列出相关系统编辑、解压缩、FTP、更新等必要的工具程序;
yum -y update
yum -y install vim
yum -y install unzip
yum -y install lrzsz
4、安装docker官网要求的依赖包
yum install -y yum-utils
5、最重要的事情来了,设置Stable镜像仓库,配置yum源,也就是后续docker的仓库,我们都要从这个源进行push或pull
##推荐
国内阿里云:yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
##大坑
官网国外:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
##查看仓库中所有的docker版本
yum list docker-ce --showduplicates | sort -r
6、更新yum软件包建立索引
yum makecache fast
7、安装docker的最新版本
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
7.1 不指定版本号即默认安装
yum install -y docker-ce
7.2 如果要指定版本号安装
##此时指定的就是docker-ce-18.09的版本
yum install docker-ce-18.09* -y
##例如docker-ce-3:24.0.0-1.el8 替换<VERSION_STRING> 使用所需版本,然后运行以下命令安装:
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
8、启动docker并设置docker开机自启服务
systemctl start docker
systemctl enable docker
9、查看docker程序运行进程
ps -ef | grep docker
10、测试验证docker是否安装成功
docker version
11、永远的HelloWorld
docker run hello-world
此时,就已经完成了docker运行安装验证,但我觉得还有一步更重要就是我们的配置镜像加速,这是我们日常运维人是必须要配置的,这取决于我们日常push和pull的效率等,下面我就简单添加下,具体操作还需要运维的同学们到阿里云配置各自的加速器脚本。
三、镜像加速获取及配置
1、URL:目前我这边测试环境使用阿里云容器镜像服务:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
2、注册账户:当然还有腾讯网易等都可以使用不指定,注册一个属于自己的阿里云账户
3、登入获取加速器地址及脚本:登陆阿里云开发者平台–点击控制台—选择容器镜像服务—获取加速器地址—粘贴脚本直接执行
4、重启服务器
5、docker镜像加速配置
[root@docker239 docker]# mkdir -p /etc/docker
[root@docker239 docker]# tee /etc/docker/daemon.json <<-'EOF'
> {
> "registry-mirrors": ["https://******.mirror.aliyuncs.com"]
> }
> EOF
{
"registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
[root@docker239 docker]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://******.mirror.aliyuncs.com"]
}
[root@docker239 docker]# systemctl daemon-reload
[root@docker239 docker]# systemctl restart docker
[root@docker239 docker]# docker run hello-world