实战-centos在线安装docker-成功测试-20220804
实战:centos在线安装docker-2022.8.4(成功测试)
目录
[toc]
实验环境
plain
1.虚机版本:1台Centos.7.6 1810 vmworkstation虚机;
2.虚机IP:172.29.9.2 nat网络(保证可通外网) 主机名:docker;
3.docker版本:20.10.8
实验软件(无)
一、基础环境配置
1、关闭且禁用firewalld、NetworkManager、selinux服务
bash
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源)
bash
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
bash
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
三、安装必要的一些系统工具
bash
[root@docker ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
四、配置国内 docker 的 yum 源
因为默认的yum源包含docker的安装包版本真的太低了,因此这里需要特别配置国内docker的yum源:
bash
[root@docker ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#生成yum缓存,后续准备安装docker:
[root@docker ~]# yum makecache
五、安装 docker-ce
1、安装 docker-ce
- yum默认安装的是最新版本的docker:
bash
[root@docker ~]#yum install -y docker-ce
- 查看当前系统已经安装的docker-ce安装包:
bash
[root@docker ~]#rpm -qa|grep docker-ce
[root@docker ~]#rpm -qa|grep containerd
2、启动并开机自启docker服务
注意:刚安装好docker,用docker version
查看版本时,报如下提示,是因为docker服务没启动起来起来。
- 启动并开机自启docker服务:
bash
[root@docker ~]# systemctl start docker
[root@docker ~]# systemctl enable docker
3、查看docker版本
bash
[root@docker ~]#docker version #查看docker版本
[root@docker ~]#docker info #查看docker详细信息
六、配置国内阿里云镜像加速器并下载镜像
Docker Hub是由Docker公司负责维护的公共镜像仓库,包含大量的容器镜像,Docker工具默认从这个公共镜像库下载镜像。
地址:https://hub.docker.com,但官方下载速度贼慢,因此我们可以使用阿里云 docker 镜像加速器,提升 pull 的速度:
1、获取阿里云自己专有的镜像加速器地址
你只需要登录容器Hub服务 https://cr.console.aliyun.com的控制台,使用你的支付宝帐号,第一次登录时,需要设置一个独立的密码,左侧的加速器帮助页面就会显示为你独立分配的加速地址。
bash
#本人的阿里云镜像加速器地址为:
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镜像地址
bash
#直接执行如下代码即可:
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目录,是没问题的,原来目录下的文件不会被覆盖的;
验证:
bash
在最后,可以看到镜像仓库的地址,已经改为阿里云了,原来默认镜像仓库的地址还在,但是默认会优先使用刚添加的阿里云地址的;
[root@docker ~]#docker info
再下载,就可以了,可以发现下载速度贼快:
bash
[root@docker ~]#docker images
[root@docker ~]#docker pull centos
七、开启网络转发功能
bash
(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镜像运行起来并观看效果
- 拉取镜像:
bash
[root@docker ~]# docker pull nginx:1.16.1
- 查看下载好的nginx镜像:
bash
[root@docker ~]# docker images
- 运行一个docker实例:
bash
[root@docker ~]# docker run -d -p 80:80 nginx:1.16.1 #-d代表后台,宿主机端口:容器端口 先在本地查找镜像,本地不存在的话,就去官网下载(docker.hub.com),如果有配置其他yum源,就会优先到配置的yum源去拉取进行镜像
602c24fa33e3a93a40899db38590f3a1287a8362a29be56328f715db7e62d869[root@docker ~]#
- 查看正在运行的容器:
bash
[root@docker ~]# docker ps
- 此时在宿主机上访问这个地址,查看效果:
bash
[root@docker ~]#curl 172.29.9.2
- 此时,如何知道这个是我们的容器呢?可以通过进入刚才创建的容器,命令修改nginx index.html文件,来验证:
bash
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文件
此时再次在宿主机上刷新网页观看效果:(符合预期)
实验到此结束!
docker一键安装脚本
注意事项:
1、机器可连通外网;
2、次脚本可一键直接执行;
bash
#初始环境
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 * !$
cd /etc/yum.repos.d/
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",
"https://docker.1ms.run",
"https://docker.m.daocloud.io",
"https://docker.1panel.top"
]
}
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进一步如何使用,请看后续博客,欢迎大家的阅读。