docker离线安装
当需要在一台不能联网的linux服务器上部署服务的时候,会发现很多服务都需要安装一些依赖,但是由于不能联网,安装这些东西非常痛苦.这时候用docker就会非常方便,直接线下将镜像打包好,用docker运行就可以了.问题来了.docker怎么离线安装呢.
1.下载docker离线包
2. 准备docker.service 系统配置文件(docker启动关闭都靠它)
- 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
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
4. 装与卸载脚本
安装脚本
- install.sh
#!/bin/sh
echo '解压tar包...'
tar -xvf $1
echo '将docker目录移到/usr/bin目录下...'
cp docker/* /usr/bin/
echo '将docker.service 移到/etc/systemd/system/ 目录...'
cp docker.service /etc/systemd/system/
echo '添加文件权限...'
chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件...'
systemctl daemon-reload
echo '启动docker...'
systemctl start docker
echo '设置开机自启...'
systemctl enable docker.service
echo 'docker安装成功...'
docker -v
卸载脚本
- uninstall.sh
#!/bin/sh
echo '删除docker.service...'
rm -f /etc/systemd/system/docker.service
echo '删除docker文件...'
rm -rf /usr/bin/docker*
echo '重新加载配置文件'
systemctl daemon-reload
echo '卸载成功...'
5.安装与卸载
此时目录里有:docker-18.03.0-ce.tgz、docker.service、install.sh、uninstall.sh
执行脚本 sh install.sh docker-18.03.0-ce.tgz 如果你想卸载docker,此时执行脚本 sh
uninstall.sh 即可
6.配置加速源
vim /etc/docker/ daemon.json 加入
{
#镜像源管理,我增加了阿里镜像源,可以提速
"registry-mirrors" : [
"https://jkfdsf2u.mirror.aliyuncs.com",
"https://registry.docker-cn.com"
],
#日志最大存储限制,如果不配置它,可能会导致/var/lib/docker/tmp/containers目录中的容器日志过大,挤占系统盘空间。
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "10"
}
}
systemctl daemon-reload 加载
systemctl restart docker 重启
7.安装 Docker Compose
由于在gihub上下载docker-compose太慢了,下载不动,只能换成国内镜像(daocloud.io)来下载。
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
修改权限
sudo chmod +x /usr/local/bin/docker-compose
查看安装是否成功
docker-compose -v
8.问题
- Failed to start docker\x0d.service: Unit not found
直接 yum update 一定要重启linux
- 使用sh脚本 No such file or directory
由于在windows下的行尾跟linux的行尾格式不一致引起。解决方法:用notepad++打开文件 依次点击 1.编辑 2.文档格式转换 3.Unix