Este guia aborda a instalação offline do Docker em sistemas baseados em Debian, como o Kylin OS ou Ubuntu, para processadores arm64, incluindo a configuração para inicialização automática após a reinicialização do sistema.
Obtenção dos Pacotes Offline
Os pacotes de instalação offline do Docker podem ser baixados do repositório oficial. Para a arquitetura arm64, certifique-se de selecionar os pacotes correspondentes a essa estrutura de CPU.
# Verificar a arquitetura do processador
uname -m
Instalação do Docker
Para instalar o Docker a partir do pacote .deb baixado, utilize o gerenciador de pacotes do sistema.
# Instalar o pacote docker-ce (substitua pelo nome real do arquivo)
sudo dpkg -i docker-ce_18.06.3~ce~3-0~debian_arm64.deb
Resolução de Erros de Dependências
Em caso de falha durante a instalação devido a bibliotecas desatualizadas, como a libseccomp2, é necessário atualizá-las. Em ambientes offline, baixe e instale manualmente as dependências.
# Instalar dependências baixadas offline (exemplo para libseccomp2)
sudo dpkg -i libseccomp2_2.4.6-0.1_arm64.deb
# Reinstalar o Docker após resolver as dependências
sudo dpkg -i docker-ce_18.06.3~ce~3-0~debian_arm64.deb
Gerenciamento do Serviço Docker
Após a instalação, é possível controlar o serviço do Docker usando comandos do systemd.
# Iniciar o Docker
sudo systemctl start docker
# Parar o Docker
sudo systemctl stop docker
# Desinstalar o Docker (opcional)
sudo apt-get remove docker
Configuração do Auto-início
Para garantir que o Docker inicie automaticamente com o sistema, crie ou edite o arquivo de serviço systemd correspondetne.
# Criar ou editar o arquivo de serviço do Docker
sudo nano /usr/lib/systemd/system/docker.service
Insira o seguinte conteúdo no arquivo:
[Unit]
Description=Motor de Contêineres Docker
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
Environment=GOTRACEBACK=crash
ExecStart=/usr/bin/dockerd $OPTIONS \
$DOCKER_STORAGE_OPTIONS \
$DOCKER_NETWORK_OPTIONS \
$INSECURE_REGISTRY
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
Em seguida, recarregue o systemd e habilite o serviço.
# Recarregar configurações do systemd e habilitar o Docker
sudo systemctl daemon-reload
sudo systemctl enable docker
Otimização com Espelhos de Imagens
Para melhorar a velocidade de download de imagens, cnofigure espelhos de repositórios no arquivo de configuração do Docker.
# Editar ou criar o arquivo de configuração do daemon
sudo nano /etc/docker/daemon.json
Adicione o conteúdo JSON abaixo, ajustando os URLs dos espelhos conforme necessário:
{
"live-restore": true,
"log-driver": "json-file",
"log-opts": {
"max-size": "500m",
"max-file": "3"
},
"bip": "10.0.1.1/24",
"default-address-pools": [
{
"base": "10.0.1.0/16",
"size": 24
}
],
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.aliyuncs.com"
]
}
Verificação e Método Alternativo de Auto-início
Teste a configuração iniciando o Docker manualmente. Se o auto-início via systemd não funcionar, utilize o arquivo rc.local como alternativa.
# Iniciar o Docker para teste
sudo systemctl start docker
# Método alternativo: adicionar comando ao rc.local
echo "/usr/bin/systemctl start docker" | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local