CentOS 7安装Docker简易指南

      访问: 2,280 次      评论    

0、Centos 7 安装

最小安装 + 基本开发包(Minimal Install + Development Tools) 即可。

1、升级内核
1)升级内核
# wget http://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-ml-4.2.5-1.el7.elrepo.x86_64.rpm
# rpm -ivh kernel-ml-4.2.5-1.el7.elrepo.x86_64.rpm
2)grub2启动项配置

查看启动项

# cat /boot/grub2/grub.cfg |grep menuentry
 
menuentry 'CentOS Linux (4.2.5-1.el7.elrepo.x86_64) 7 (Core)' --class centos ...
menuentry 'CentOS Linux (3.10.0-229.20.1.el7.x86_64) 7 (Core)' --class centos ...

# cat /boot/grub2/grubenv     //这里记录了默认启动项
# GRUB Environment Block
saved_entry=CentOS Linux (3.10.0-229.20.1.el7.x86_64) 7 (Core)

 

修改默认启动内核为4.2.5:

# grub2-set-default 'CentOS Linux (4.2.5-1.el7.elrepo.x86_64) 7 (Core)'
 
# grub2-editenv list
saved_entry=CentOS Linux (4.2.5-1.el7.elrepo.x86_64) 7 (Core)


3)开启 User namespaces

# grubby --args="user_namespace.enable=1" --update-kernel=/boot/vmlinuz-4.2.5-1.el7.elrepo.x86_64
 
检查一下,应该已经在 boot command line 上加上启动参数了:
# grep user_namespace /boot/grub2/grub.cfg
 
# reboot


2、关闭SELinux
# vi /etc/selinux/config 
SELINUX=disabled

# reboot


3、关闭firewalld(以免和docker创建iptables规则冲突

改用传统的iptables-service 来管理iptables规则

# systemctl stop firewalld
# systemctl disable firewalld

# yum install iptables-services
# systemctl disable iptables.service  //不需要启用这个服务,docker会自动启动iptables


4、安装docker
# wget -qO- https://get.docker.com/ | sh

 

5、配置和启动Docker
1)配置docker服务开机自动启动:
# systemctl list-unit-files |grep [d]ocker
# systemctl enable docker.service
2)配置docker启动参数:

官网的建议方法如下:(好处是不用修改docker的systemd配置文件,这样在docker升级后不用重新修改该文件)

# mkdir /etc/systemd/system/docker.service.d/

# vi /etc/systemd/system/docker.service.d/docker.conf   (注意这个文件名,不能是 docker 或者 docker.service )

[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// --storage-driver=overlay
(这段启动命令从 /usr/lib/systemd/system/docker.service 拷贝而来,再加入我们需要的启动参数即可)


# systemctl daemon-reload 

# systemctl start docker


老方法(不建议了):

*************************************************************************************************

# vi /usr/lib/systemd/system/docker.service 
 
[Service]
EnvironmentFile=-/etc/sysconfig/docker  (加入这一行)
Type=notify
ExecStart=/usr/bin/docker daemon -H fd:// $OPTIONS  (加入$OPTIONS)
 
# vi /etc/sysconfig/docker 

OPTIONS="--storage-driver=overlay"
 
# systemctl daemon-reload
 
# systemctl start docker

*************************************************************************************************

6、常用命令做成脚本(方便我们查看容器的PID和IP)
# vi /usr/local/bin/docker-pid 
 
#!/bin/sh
exec docker inspect --format '{{ .State.Pid }}' "$@"
 
--
 
# vi /usr/local/bin/docker-ip
 
 
#!/bin/sh
exec docker inspect --format '{{ .NetworkSettings.IPAddress }}' "$@"
 
# chmod 755 /usr/local/bin/docker-*
7、启动第一个容器试试(hello-world)
# docker run hello-world


附:官方提供了内核环境的检查脚本 docker/contrib/check-config.sh ( wget raw_file )

添加新评论