跳到主要内容

实战:centos在线安装docker-2022.8.4(成功测试)

实战:centos在线安装docker-2022.8.4(成功测试)

img

目录

[toc]

实验环境

1.虚机版本:1台Centos.7.6 1810 vmworkstation虚机;
2.虚机IP:172.29.9.2 nat网络(保证可通外网) 主机名:docker;
3.docker版本:20.10.8

实验软件(无)

一、基础环境配置

1、关闭且禁用firewalld、NetworkManager、selinux服务

systemctl stop firewalld
systemctl disable firewalld

systemctl stop NetworkManager
systemctl disable NetworkManager

setenforce 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config

2、配置网络yum源(或者本地yum源)

cd /etc/yum.repos.d/
mkdir backup-`date +%F`
mv * !$

wget -O /etc/yum.repos.d/Centos-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache

yum install -y net-tools
yum install -y vim
yum install -y wget
yum install -y lrzsz

二、卸载旧版本docker

yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

三、安装必要的一些系统工具

[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

四、配置国内 docker 的 yum 源

因为默认的yum源包含docker的安装包版本真的太低了,因此这里需要特别配置国内docker的yum源:

[root@docker ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#生成yum缓存,后续准备安装docker:
[root@docker ~]# yum makecache

img

五、安装 docker-ce

1、安装 docker-ce

  • yum默认安装的是最新版本的docker:
[root@docker ~]#yum install -y docker-ce

img

  • 查看当前系统已经安装的docker-ce安装包:
[root@docker ~]#rpm -qa|grep docker-ce
[root@docker ~]#rpm -qa|grep containerd

img

2、启动并开机自启docker服务

注意:刚安装好docker,用docker version查看版本时,报如下提示,是因为docker服务没启动起来起来

img

  • 启动并开机自启docker服务:
[root@docker ~]# systemctl start docker
[root@docker ~]# systemctl enable docker

img

3、查看docker版本

[root@docker ~]#docker version #查看docker版本
[root@docker ~]#docker info #查看docker详细信息

img

img

img

六、配置国内阿里云镜像加速器并下载镜像

Docker Hub是由Docker公司负责维护的公共镜像仓库,包含大量的容器镜像,Docker工具默认从这个公共镜像库下载镜像。

地址:https://hub.docker.com,但官方下载速度贼慢,因此我们可以使用阿里云 docker 镜像加速器,提升 pull 的速度:

1、获取阿里云自己专有的镜像加速器地址

你只需要登录容器Hub服务 https://cr.console.aliyun.com的控制台,使用你的支付宝帐号,第一次登录时,需要设置一个独立的密码,左侧的加速器帮助页面就会显示为你独立分配的加速地址。

img

img

#本人的阿里云镜像加速器地址为:
https://kvuwuws2.mirror.aliyuncs.com

#命令如下:
sudo mkdir -p /etc/dockersudo
tee /etc/docker/daemon.json <<-'EOF
'{
"registry-mirrors": ["https://kvuwuws2.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

2、配置docker镜像地址

#直接执行如下代码即可:
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":["https://kvuwuws2.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://dockerhub.azk8s.cn"]
}
EOF
systemctl daemon-reload
systemctl restart docker

备注:
#我们在安装了docker服务后,默认在就会生成/etc/docker目录了,以上命令再次创建了/etc/docker目录,是没问题的,原来目录下的文件不会被覆盖的;

img

验证:

在最后,可以看到镜像仓库的地址,已经改为阿里云了,原来默认镜像仓库的地址还在,但是默认会优先使用刚添加的阿里云地址的;
[root@docker ~]#docker info

img

img

再下载,就可以了,可以发现下载速度贼快:

[root@docker ~]#docker images
[root@docker ~]#docker pull centos

img

img

七、开启网络转发功能

(1)永久生效方法:
[root@docker ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@docker ~]# sysctl -p #生效net.ipv4.ip_forward = 1
[root@docker ~]# cat /proc/sys/net/ipv4/ip_forward #查看,1代表开启网络路由转发功能
1

(2)临时生效方法:
[root@docker ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@docker ~]# cat /proc/sys/net/ipv4/ip_forward
1

#最终输出脚本:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
cat /proc/sys/net/ipv4/ip_forward

八、验证:拉取一个nginx镜像运行起来并观看效果

  • 拉取镜像:
[root@docker ~]# docker pull nginx:1.16.1

img

  • 查看下载好的nginx镜像:
[root@docker ~]# docker images

img

  • 运行一个docker实例:
[root@docker ~]# docker run -d -p 80:80 nginx:1.16.1 #-d代表后台,宿主机端口:容器端口 先在本地查找镜像,本地不存在的话,就去官网下载(docker.hub.com),如果有配置其他yum源,就会优先到配置的yum源去拉取进行镜像
602c24fa33e3a93a40899db38590f3a1287a8362a29be56328f715db7e62d869[root@docker ~]#

img

  • 查看正在运行的容器:
[root@docker ~]# docker ps

img

  • 此时在宿主机上访问这个地址,查看效果:
[root@docker ~]#curl 172.29.9.2

img

http://172.29.9.2/

img

  • 此时,如何知道这个是我们的容器呢?可以通过进入刚才创建的容器,命令修改nginx index.html文件,来验证:
root@docker:~# docker ps
root@docker:~# docker exec -it 00f7ff787d47 bash #-i代表标准输入,t代表tty
root@00f7ff787d47:/# pwd/
root@00f7ff787d47:/# cat /etc/issue #查看容器系统是debaian的Debian GNU/Linux 10 \n \l
root@00f7ff787d47:/# cd /usr/share/nginx/html/
root@00f7ff787d47:/usr/share/nginx/html# ls -l
total 8-rw-r--r-- 1 root root 494 Aug 13 2019 50x.html
-rw-r--r-- 1 root root 612 Aug 13 2019 index.html
root@00f7ff787d47:/usr/share/nginx/html# cat index.html
<!DOCTYPE html>
……
</html>
root@00f7ff787d47:/usr/share/nginx/html# echo "Linux39" > index.html #修改nginx index.html文件

img

img

img

此时再次在宿主机上刷新网页观看效果:(符合预期)

img

实验到此结束!

docker一键安装脚本

注意事项:

1、机器可连通外网;

2、次脚本可一键直接执行;

#初始环境
systemctl stop firewalld
systemctl disable firewalld

systemctl stop NetworkManager
systemctl disable NetworkManager

setenforce 0
sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config




yum install -y net-tools
yum install -y vim
yum install -y wget
yum install -y lrzsz


cd /etc/yum.repos.d/
mkdir backup-`date +%F`
mv * !$

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache



yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache

#yum install docker-ce -y
yum install -y yum install docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io #指定需要安装的版本号
systemctl start docker && systemctl enable docker

docker version
docker info


sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://hub.uuuadc.top",
"https://docker.anyhub.us.kg",
"https://dockerhub.jobcher.com",
"https://dockerhub.icu",
"https://docker.ckyl.me",
"https://docker.awsl9527.cn"
]
}
EOF



cat /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
cat /proc/sys/net/ipv4/ip_forward

systemctl daemon-reload
systemctl restart docker

总结

以上,就是如何在Centos上安装docker服务的完整过程了。关于docker进一步如何使用,请看后续博客,欢迎大家的阅读。

img