参考: https://www.cnblogs.com/kingsonfu/p/11576797.html
https://www.jianshu.com/p/9c4ec2b38ed6
1、安装环境
此处在Centos7进行安装,可以使用以下命令查看CentOS版本
lsb_release -a
在 CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看
uname -r
如果发现内核过低参照 【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
2.2 安装docker
sudo yum -y install docker-ce
-y表示不询问安装,直到安装成功,安装完后再次查看安装列表
2.3 启动docker
systemctl start docker
2.4 查看docker服务状态
systemctl status docker
以上说明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
上图表示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)