使用CentOS7创建Docker运行环境

使用CentOS7创建Docker运行环境

  

目录:

 一、网络基础设置:

1.1 IP地址、网关

1.2 hostname、DNS

1.3 Host主机列表文件

1.4检查IP地址配置

 二、安全及其他设置:

2.1 关闭防火墙

2.2 关闭SELinux

2.3 关闭Swap交换分区

2.4 开启IPv4转发

2.5 禁用IPv6协议

 三、安装Docker-ce 17.03.2

3.1、软件包更新

3.2、查看是否已安装了docker软件包:

3.3、卸载掉不想要的版本docker软件包

3.4、安装指定的docker版本docker-ce 17.03.2

3.5、配置国内镜像加速器

 四、CentOS7内核升级:

1、安装ELRepo软件仓库源

2、安装最新的稳定版内核(4.14.11)

 五、设置GRUB开机启动项:

1、创建开机启动菜单

2、查看可选的开机启动菜单

3、设置开机启动项


 

一、网络基础设置:

1.1 IP地址、网关

# CentOS7网卡的配置文件都是放在 /etc/sysconfig/network-scripts目录下

# eth0网卡的配置文件名为 /etc/sysconfig/network-scripts/ifcfg-eth0

# 使用VirtualBox虚拟机创建的网卡为enp0s3,

# 相应网卡的配置文件名为 /etc/sysconfig/network-scripts/ifcfg-enp0s3

# 使用vi编辑 ifcfg-enp0s3文件,内容如下:

sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

 

DEVICE="enp0s3"

HWADDR="00:21:70:10:7E:CD"

NM_CONTROLLED="no"

ONBOOT="yes"

BOOTPROTO=static

 

IPADDR=192.168.3.164

NETMASK=255.255.255.0

GATEWAY=192.168.3.254

 

# 这个是自动获取IP地址的DHCP的配置参数

# BOOTPROTO=dhcp  

# 系统会自动检测网卡的MAC地址:

# HWADDR="xx:xx:xx:xx:xx:xx"

# 有时候网关的配置也会放到/etc/sysconfig/network 文件中

# GATEWAY=10.1.2.254

 

1.2 hostname、DNS

#修改本地主机名hostname,配置文件为/etc/hostname

#此文件是否会根据/etc/sysconfig/network文件或ifcfg-enp0s3文件的配置自动生成?

sudo vi /etc/hostname

node4

 

#配置本地主机名、DNS

#配置文件为:/etc/sysconfig/network

#(好像也可以将此文件的内容合并到/etc/sysconfig/network-scripts/ifcfg-enp0s3网卡配置文件中。)

#分开更清晰,合并更方便,各有利弊。

sudo vi /etc/sysconfig/network

HOSTNAME=node4

DNS1=218.2.135.1

DNS2=8.8.8.8

 

# 查看DNS域名解析文件/etc/resolv.conf,重启网络服务service network restart

# 此文件会根据网卡配置文件/etc/sysconfig/network 的配置自动生成,无需设置

sudo cat /etc/resolv.conf

nameserver 218.2.135.1

nameserver 8.8.8.8

 

1.3 Host主机列表文件

#修改主机列表文件/etc/hosts

#优先于DNS快速解析局域网中的其他主机名和IP

sudo vi /etc/hosts

127.0.0.1  localhost

192.168.3.164  node4   

192.168.3.165  node5   

192.168.3.166  node6   

 

#重启网络服务,使以上修改生效

sudo service network restart

 

1.4检查IP地址配置

# CentOS7中默认没有安装ifconfig and netstat工具,

# 这两个工具太老旧了,在CentOS5、CentOS6中就已经不建议使用了,

# 取代他们的是更好的 ip 和 ss 命令,

# 其中之一的原因是ifconfig不能显示与网卡相关的全部的细节。

# 如果非要使用,可以用yum安装 net-tools软件包

sudo yum -y install net-tools

 

# 查看网卡配置信息

ifconfig

ip a

 

# 查看网络协议及端口状态

sudo ss

 

二、安全及其他设置:

2.1 关闭防火墙

#CentOS 7.x默认使用firewalld作为防火墙

#安装防火墙管理工具firewalld

sudo yum install -y firewalld

#直接关闭防火墙

sudo systemctl stop firewalld.service  

 

#禁止firewalld开机启动

sudo systemctl disable firewalld.service

 

#查看firewalld防火墙状态

sudo firewall-cmd --state

  

#安装iptables防火墙

sudo yum -y install iptables iptables-services


#关闭iptables防火墙

sudo systemctl stop iptables.service

 

#禁用iptables防火墙

sudo systemctl disable iptables.service

 

2.2 关闭SELinux

#可查看selinux的状态

#可以使用getenforce 或者sestatus

sudo getenforce   

sudo sestatus

 

#修改配置文件,重启后永久关闭

sudo vi /etc/sysconfig/selinux

SELINUX=disabled

 

#注意:使用setenforce 0 只是临时关闭selinux防火墙,立刻生效,但重启又恢复原样。

sudo setenforce 0   

 

2.3 关闭Swap交换分区

# 查看Swap交换分区有多种方式,

# free -m、top、df -h、fdisk -l等都可以,

# 使用free查看当前的内存和swap 空间大小

sudo free -m

sudo df -h

sudo fdisk -l

 

# 查看swap信息,包括文件和分区的详细信息

sudo swapon -s

 

# 临时关闭所有交换设备(重启机器又会启用swap)

sudo swapoff -a

 #永久关闭交换设备,需要修改/etc/fstab文件,注释掉最后面的swap分区

sudo vi /etc/fstab

#注释掉下面的一行,比如:

#/dev/mapper/centos-swap swap                    swap    defaults        0 0


2.4 开启IPV4转发

# 编辑配置文件/etc/sysctl.conf

sudo vi /etc/sysctl.conf                    

 

# 设置启用转发,后两条去除Docker info 中的WARING告警信息

net.ipv4.ip_forward=1               

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1


# 立刻生效

sudo sysctl -p

 

2.5 禁用IPv6协议

#编辑/etc/sysctl.conf文件

sudo vi /etc/sysctl.conf

 

#在文件中增加一行,内容为:

net.ipv6.conf.all.disable_ipv6 = 1

 

#使得/etc/sysctl.conf 更改生效:

sudo sysctl -p /etc/sysctl.conf

 

#编辑/etc/hosts文件,

sudo vi /etc/hosts

 

#注释或删除掉ipv6相关的行,内容大致如下:

# The following lines are desirable for IPv6 capable hosts

#::1     localhost ip6-localhost ip6-loopback

#ff02::1 ip6-allnodes

#ff02::2 ip6-allrouters

 

三、安装docker-ce 17.03.2:

3.1、软件包更新

#将最小化安装的CentOS7中所有软件包更新到最新

sudo yum update -y

 

3.2、查看是否已安装了docker软件包:

 #查看是否已经安装的Docker软件包

sudo yum list installed | grep docker

 

3.3、卸载掉不想要的版本docker软件包

 #如果已安装不想要dockerdocker-enginedocker-ce相关的软件包,则卸载掉:

sudo yum -y remove docker docker-common docker-selinux docker-engine docker-engine-selinux container-selinux docker-ce

 

#删除所有的镜像、容器、数据卷、配置文件等

sudo rm -rf /var/lib/docker

 

3.4、安装Docker-ce 17.03.2

#配置CentOS7操作系统软件源,这里使用阿里云开源镜像站作为软件源
#以便加速CentOS7操作系统相关的软件包的下载速度

#先要安装wget、curl小工具

sudo yum install -y wget curl
#再备份原软件仓库文件

sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#再下载新的CentOS-Base.repo 到/etc/yum.repos.d/
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#安装yum-utils工具和docker-ce相关的device-mapper等依赖包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2


#配置docker-ce软件源,添加阿里云docker-ce软件源信息

#以便加速docker-ce相关软件包的下载速度
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#更新yum缓存文件

sudo yum makecache fast

 

#查看所有可安装的docker-ce版本

sudo yum list docker-ce --showduplicates | sort -r

#安装docker-ce-selinux-17.03.2.ce,否则安装docker-ce会报错

sudo yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm

#安装指定的Docker版本:docker-ce-17.03.2.ce

sudo yum install -y docker-ce-17.03.2.ce-1.el7.centos

 

#允许开机启动docker-ce服务

sudo systemctl enable docker.service

#启动Docker-ce服务

sudo systemctl start docker

#检查是否正常安装:

sudo yum list installed | grep docker

sudo docker info

#运行测试容器hello-world

sudo docker run --rm hello-world


#修改/etc/docker/daemon.json后台配置文件

#设置默认存储驱动为overlay2

#这一步要在升级4.x内核后进行,因为4.x内核才支持overlay2存储驱动

#不升级内核,不能加:"storage-driver": "overlay2",或参照官网的存储驱动配置说明

#添加阿里云的镜像加速器

{

"storage-driver": "overlay2",
"registry-mirrors": [
 "https://pee6w651.mirror.aliyuncs.com",
 "https://registry.docker-cn.com"
]

}

 

四、CentOS7内核升级:

#导入ELRepo软件仓库的公共秘钥

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

 

#安装ELRepo软件仓库的yum源

sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

 

#安装主线内核(ml=mainline)(4.14.11)

sudo yum --enablerepo=elrepo-kernel install -y kernel-ml

 

五、设置GRUB开机启动项:

#根据/boot/目录内的文件

#自动创建GRUB内核配置开机选单

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

#说明:/boot/grub2/grub.cfg文件不可手工编辑

 

#查看可选的GRUB内核配置开机选单

sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

#说明:/etc/grub2.cfg文件是一个文件链接,

#实际链接到/boot/grub2/grub.cfg

 

#/etc/default/grub文件是可以编辑,

#保存了GRUB通用的变量设置

#查看编辑/etc/default/grub文件,

#确保GRUB_DEFAULT=saved

sudo vi /etc/default/grub

 

#假设我们需要运行的内核版本为第0项

#执行grub2-set-default0设置内核配置开机选单为第0项(第一个)

#执行grub2-editenv list确认设置成功(saved_entry=0)

sudo grub2-set-default 0

sudo grub2-editenv list

 

(完)


参考链接:

CentOS7中Docker-ce的卸载和安装

http://blog.csdn.net/csdn_duomaomao/article/details/78997138 

CentOS7 升级内核及注意事项

http://blog.csdn.net/csdn_duomaomao/article/details/78967545 

 CentOS7设置GRUB系统内核开机选单

http://blog.csdn.net/csdn_duomaomao/article/details/78963761 

永久禁用IPv6的方法

http://blog.csdn.net/csdn_duomaomao/article/details/79050398

CentOS 7.2启用iptables防火墙

http://www.linuxidc.com/Linux/2017-09/146813.htm 

CentOS 7.0关闭默认防火墙启用iptables防火墙

http://www.linuxidc.com/Linux/2015-05/117473.htm 

Questions about CentOS-7

https://wiki.centos.org/FAQ/CentOS7#head-a21a9e454157700367c9b7e9ccb1ff9954bec881 

Red Hat Enterprise Linux Release Notes

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/ 

Docker 问答录(100 问)

https://blog.lab99.org/post/docker-2016-07-14-faq.html#centos-7-de-nei-he-tai-lao-liao-3-10-shi-bu-shi-hen-duo-docker-gong-neng-bu-zhi-chi 

CentOS 版本的发行注记

https://wiki.centos.org/zh/Manuals/ReleaseNotes 

docker info报错docker bridge-nf-call-iptables is disabled解决办法

http://blog.csdn.net/xypds2010/article/details/52212323



 


 

猜你喜欢

转载自blog.csdn.net/CSDN_duomaomao/article/details/79054987
今日推荐