【4.1】服务器安装 Docker 安装与优化

参考: https://www.cnblogs.com/kingsonfu/p/11576797.html
https://www.jianshu.com/p/9c4ec2b38ed6

1、安装环境

此处在Centos7进行安装,可以使用以下命令查看CentOS版本

lsb_release -a
image

在 CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看

uname -r
image

如果发现内核过低参照 【1.13】服务器安装 Linux 升级内核方法升级内核,方法很好用,对于提高性能减少bug很有帮助。
升级完内核最好更新下软件,yum upgrade -y

2、用yum源安装

https://www.jianshu.com/p/6e5da590aeda

首先卸载
yum remove docker docker-common docker-selinux docker-engine
安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
安装源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
查看可以安装的版本
yum list docker-ce --showduplicates | sort -r

2.1 查看是否已安装docker列表

yum list installed | grep docker
image

2.2 安装docker

sudo yum -y install docker-ce

-y表示不询问安装,直到安装成功,安装完后再次查看安装列表

image

2.3 启动docker

systemctl start docker

2.4 查看docker服务状态

systemctl status docker
image

以上说明docker安装成功

3、离线安装模式

3.1 安装包官方地址:https://download.docker.com/linux/static/stable/x86_64/

可以先下载到本地,然后通过ftp工具上传到服务器上,或者在服务器上使用命令下载

wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz

3.2 解压

tar -zxvf docker-18.06.3-ce.tgz

3.3 将解压出来的docker文件复制到 /usr/bin/ 目录下

cp docker/* /usr/bin/

3.4 在/etc/systemd/system/目录下新增docker.service文件,内容如下,这样可以将docker注册为service服务

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.

LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.

# Only systemd 226 and above support this version.

#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

此处的--insecure-registry=127.0.0.1(此处改成你私服ip)设置是针对有搭建了自己私服Harbor时允许docker进行不安全的访问,否则访问将会被拒绝。

3.5 启动docker

给docker.service文件添加执行权限

chmod +x /etc/systemd/system/docker.service

重新加载配置文件(每次有修改docker.service文件时都要重新加载下)

systemctl daemon-reload

启动

systemctl start docker

设置开机启动

systemctl enable docker.service

查看docker服务状态

systemctl status docker
image

上图表示docker已安装成功

安装完别忘记修改下防火墙的端口 参照【1.10】服务器安装 Linux 防火墙设置 添加或者关闭防火墙,然后重启docker

docker 优化

https://blog.csdn.net/weixin_32820767/article/details/81196250
https://www.cnblogs.com/zhangmingcheng/p/14135986.html
https://www.cnblogs.com/cheyunhua/p/13427815.html

docker info
systemctl stop docker
mkdir -p /home/docker
rsync -avz /var/lib/docker /home/docker

vi /etc/docker/daemon.json
#registry 需要一个端口5000,nexus需要两个端口区分上传和下载9003和9004,harbor需要一个端口9006
# insecure-registries 注册的是本地代理的仓库地址也就是私服docker仓库
# data-root修改需要到一个空间较大的位置,几十G的空间很快被镜像,容器,占满的。
# log-opts 限制产生日志文件的大小,个数。默认没有限制。
# 如果文件过大可以使用cat 清除文件 cat /dev/null > file.log
{
 "insecure-registries": [
    "192.168.0.105:5000",
    "192.168.0.103:9003",
    "192.168.0.103:9004",
    "192.168.0.105:9006"
 ],
 "log-driver":"json-file",
 "log-opts":{
        "max-size" :"500m","max-file":"3"
   },
  "data-root": "/home/docker/docker"
}



systemctl daemon-reload
systemctl restart docker
systemctl enable docker
docker info
# docker 的root dir 改变了
# Docker Root Dir: /home/docker/docker

rm -Rf /var/lib/docker

# 开始清理images,使用下个命令
docker system prune

# 可以看下docker的占用情况,使用下面命令
docker system df

yum install docker-compose -y

点波关注 系统搭建(docker)

你可能感兴趣的:(【4.1】服务器安装 Docker 安装与优化)