Preparando o pacote offline do Docker
Obtenha a distribuição compactada oficial do Docker para instalação sem conexão. Neste exemplo, utilizamos o arquivo docker-17.03.2-ce.tgz.
Configurando o serviço systemd para o Docker
Crie um arquivo chamado docker.service com o seguinte conteúdo:
[Unit]
Description=Mecanismo de Containers Docker
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
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
Scripts de instalação e remoção
Script de instalação
Crie um arquivo instalar.sh com o código abaixo:
#!/bin/bash
set -e
echo "Extraindo o pacote Docker..."
tar -xf "$1"
echo "Copiando binários para /usr/bin..."
sudo cp docker/* /usr/bin/
echo "Instalando o serviço systemd..."
sudo cp docker.service /etc/systemd/system/docker.service
sudo chmod 644 /etc/systemd/system/docker.service
echo "Recarregando e iniciando o serviço..."
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker
echo "Verificação da instalação:"
docker version --format '{{.Server.Version}}'
Script de remoção
Crie um arquivo remover.sh:
#!/bin/bash
set -e
echo "Parando o serviço Docker..."
sudo systemctl stop docker
sudo systemctl disable docker
echo "Removendo arquivos do sistema..."
sudo rm -f /etc/systemd/system/docker.service
sudo rm -f /usr/bin/docker*
echo "Atualizando o systemd..."
sudo systemctl daemon-reload
echo "Docker removido com sucesso."
Executando a instalação
Execute o script de instalação passando o pacote como argumento:
bash instalar.sh docker-17.03.2-ce.tgz
Otimizando com espelhos locais
Para acelerar o download de imagens na China, configure um daemon.json com espelhos confiáveis. Crie ou edite o arquivo /etc/docker/daemon.json:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
Reinicie o serviço Docker para aplicar as alterações:
sudo systemctl restart docker
Verificação final
Confirme se o Docker está em execução e configurado para iniciar com o sistema:
systemctl status docker
docker --version