【Docker入门学习】(一) docker的安装与配置

一、安装docker

官方文档:Install Docker Engine on CentOS,Docker离线安装文件:https://download.docker.com

安装 Docker需要 64 位版本的CentOS 7。

1.升级CentOS7系统和内核

首先,升级一下系统,保证工具包都是最新的。

yum update  -y

然后,升级一下系统内核。

centos7默认的内核版本是3.10,低版本的内核在使用docker时会出现兼容性和稳定性的问题,docker官方对内核的说明:https://docs.docker.com/storage/storagedriver/overlayfs-driver/。通常,我们推荐至少要将内核版本升级到4.18+。离线安装内核可以到https://elrepo.org/linux/kernel/el7/x86_64/RPMS下载,下面记录在线安装步骤。

#查看当前内核版本
uname -a

#下载公钥
rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#安装elrepo repo
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-5.el7.elrepo.noarch.rpm

#列出可用的内核包(lt表示longterm,长期维护版。ml表示mainline,最新稳定版)
[vagrant@centos7 ~]$ yum --disablerepo="*" --enablerepo=elrepo-kernel list available
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* elrepo-kernel: hkg.mirror.rackspace.com
Available Packages
kernel-lt-doc.noarch 5.4.157-1.el7.elrepo elrepo-kernel
kernel-lt-headers.x86_64 5.4.157-1.el7.elrepo elrepo-kernel
kernel-lt-tools.x86_64 5.4.157-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs.x86_64 5.4.157-1.el7.elrepo elrepo-kernel
kernel-lt-tools-libs-devel.x86_64 5.4.157-1.el7.elrepo elrepo-kernel
kernel-ml.x86_64 5.15.0-1.el7.elrepo elrepo-kernel
kernel-ml-devel.x86_64 5.15.0-1.el7.elrepo elrepo-kernel
kernel-ml-doc.noarch 5.15.0-1.el7.elrepo elrepo-kernel
kernel-ml-headers.x86_64 5.15.0-1.el7.elrepo elrepo-kernel
kernel-ml-tools.x86_64 5.15.0-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs.x86_64 5.15.0-1.el7.elrepo elrepo-kernel
kernel-ml-tools-libs-devel.x86_64 5.15.0-1.el7.elrepo elrepo-kernel
perf.x86_64 5.15.0-1.el7.elrepo elrepo-kernel
python-perf.x86_64 5.15.0-1.el7.elrepo

#下面开始安装内核了,安装LTS版本吧,没必要用最新的。
##安装内核(LTS版)-选这个吧
yum --enablerepo=elrepo-kernel install  kernel-lt-devel kernel-lt -y
##安装内核(最新版)
yum --enablerepo=elrepo-kernel install  kernel-ml-devel kernel-ml -y

#查看系统可用内核
[vagrant@centos7 ~]$ sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.4.157-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.45.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1127.el7.x86_64) 7 (Core)

#通过 grub2-set-default 0 命令或编辑 /etc/default/grub 文件来设置
grub2-set-default 0

#重新生成grub配置
grub2-mkconfig -o /boot/grub2/grub.cfg

#重启
reboot

#验证
uname -a

2.配置国内源

先修改CentOS7系统yum源。

#备份系统自带的yum源
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.backup

#下载阿里源
wget http://mirrors.aliyun.com/repo/Centos-7.repo

#生成缓存
yum clean all
yum makecache

再配置Docker的yum源。

#安装yum-utils包,它提供了yum-config-manager工具。同时安装docker稳定版仓库。
sudo yum install -y yum-utils

#官方仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#改用阿里云仓库,速度更快 
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.安装docker

如果已经安装过docker旧版本可以先卸载。卸载将会保留 /var/lib/docker/ 的内容,包括镜像、容器、存储卷和网络,可以手动将其删除。

#卸载已安装的docker
sudo yum remove docker \
              docker-client \
              docker-client-latest \
              docker-common \
              docker-latest \
              docker-latest-logrotate \
              docker-logrotate \
              docker-engine
sudo rm -rf /var/lib/docker

# 1.安装最新版docker
sudo yum install docker-ce docker-ce-cli containerd.io

# 2.安装指定版本docker
# 列出可用版本
yum list docker-ce --showduplicates | sort -r
# 安装指定版
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

安装docker同时会自动创建docker组,但不会添加任何用户。

4.启动docker并设置开机启动

sudo systemctl start docker
sudo systemctl enable docker

5.验证

验证是否正确安装了docker,方法是运行hello-world 镜像。此命令将下载一个测试镜像并在容器中运行它。容器运行时,它将输出一条参考消息并退出。

sudo docker run hello-world

二、配置

官方文档:Post-installation steps for Linux

1.设置以非root用户身份管理Docker

docker 守护进程绑定至 Unix 套接字,而不是 TCP 端口。默认情况下,该 Unix 套接字由用户 root 所有,而其他用户只能使用 sudo 访问它。docker 守护进程始终以 root 用户身份运行。

在使用 docker 命令时,如果您不想使用 sudo,请创建名为 docker 的 Unix 组并向其中添加用户。docker 守护进程启动时,它将使 Unix 套接字的所有权可由 docker 组进行读取/写入。

如需创建 docker 组并添加您的用户,请执行下列操作:

#创建docker组【安装docker时会自动创建docker组】。
sudo groupadd docker
#向docker组中添加用户 sudo usermod -aG docker $USER

注销并重新登录,以便对您的组成员资格进行重新评估。
(如果在虚拟机上进行测试,可能必须重启此虚拟机才能使更改生效。在桌面Linux环境(例如,X Windows)中,彻底从您的会话中注销,然后重新登录。)

#验证您是否可以在不使用sudo的情况下运行docker命令。
docker run hello-world

2.配置阿里云镜像加速

国内通过docker官方仓库下载镜像比较慢,使用国内的阿里云、163等提供的docker仓库速度更快。

使用阿里云加速,需要到阿里云进行注册,获取到自己专属的加速地址,当然也可以使用别人的加速地址。

第一步,打开阿里云网站,点击控制台。

第二步,进行登录,如果没有账号就先注册个账号,登录成功后会跳转到控制台页面,找到容器服务。进入容器镜像服务,镜像加速器。按照提示来操作即可。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://561my9m4.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

这样就配置好了镜像加速。

3.修改默认Cgroup驱动(可选)

Docker默认使用cgroups作为文件驱动,而Kubernetes推荐使用systemd来替代cgroups,两者不一致。

可以进行如下配置。当然,也可以暂时不修改,等用到Kubernetes时再修改。

cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

systemctl restart docker

4.修改默认镜像仓库位置(可选)

Ubuntu 中的位置是:/etc/default/docker。CentOS中的位置是:/etc/sysconfig/docker。指定镜像和容器存放路径的参数是--graph=/var/lib/docker,我们只需要修改配置文件指定启动参数即可。

CentOS7的修改方法

# 关闭docker服务
systemctl stop docker.service

# 移动数据。
mv /var/lib/docker  新路径

----------------------------------------------------------
# 修改docker.service文件
vim /usr/lib/systemd/system/docker.service  
# 添加使用-g参数
ExecStart=/usr/bin/dockerd --graph /new-path/docker 
---------------------------------------------------------

# reload配置文件 
systemctl daemon-reload 

# 重启docker 
systemctl restart docker.service

# 查看数据目录
docker info | grep Dir

Ubuntu修改方法

#关闭docker 服务
service docker stop

#移动数据到新的目录
mv /var/lib/docker  新目录

#修改默认配置
vim /etc/default/docker
# 在配置文件最后一行追加下面配置即可
DOCKER_OPTS="-g /root/data/docker"

#重启docker 服务
service docker start

#查看数据目录
docker info | grep Dir 

 

posted @ 2018-08-22 21:42  静水楼台/Java部落阁  阅读(828)  评论(0编辑  收藏  举报