Introduzione
In questo documento viene descritto come risolvere i problemi relativi a un contenitore di tipo docker dietro un server proxy quando non è possibile accedere a Internet.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
- Interfaccia Linux
- Ambienti di macchine virtuali
Componenti usati
Le informazioni di questo documento si basano sulle seguenti versioni software:
- CloudCenter versione 4.x
- CloudCenter Orchestrator (CCO)
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
Se l'azienda richiede un proxy per accedere a Internet, è necessario configurare il contenitore docker.
Problema
Questa è la procedura per riprodurre il problema quando il contenitore docker non è in grado di raggiungere Internet.
Quando l'utente root tenta di eseguire il file core_installer.bin sul CCO:
[root@localhost tmp]# ./core_installer.bin centos7 vmware cco
Questo errore verrà visualizzato:
Soluzione
Passaggio 1. Eseguire il file core_installer.bin con questi argomenti per creare la cartella principale.
[root@localhost]# /core_installer.bin --noexec --keep
Passaggio 2. Passare alla cartella principale.
[root@localhost]# cd core
Passaggio 3. Dalla cartella principale, eseguire lo script setup.sh per installare il docker.
[root@localhost core]# /setup.sh centos7 vmware docker
Lo script non riesce e viene visualizzato l'errore "Failed in Docker" (Errore in Docker).
Passaggio 4. Modificare il file Docker.
[root@localhost core]# vi docker/cliqr-container-worker/Dockerfile
Passaggio 5. Aggiungere le informazioni sul server proxy nella sezione ENV del file Docker.
ENV JAVA_VERSION 1.7.0
ENV http_proxy http://proxy.company.com
ENV https_proxy https://proxy.company.com
Nota: Sostituire proxy.company.com con l'indirizzo effettivo del server proxy.
Passaggio 6. Creare una directory di destinazione di sistema per il servizio docker.
[root@localhost core]# mkdir /etc/systemd/system/docker.service.d
Passaggio 7. Creare il file http-proxy.conf del docker.
[root@localhost core]# vi /etc/systemd/system/docker.service.d/http-proxy.conf
Passaggio 8. Aggiungere le informazioni sul server proxy.
[Service]
Environment="HTTP_PROXY=http://proxy.company.com"
Environment="HTTPS_PROXY=https://proxy.company.com"
Environment="NO_PROXY=localhost,127.0.0.1"
Passaggio 9. Se si dispone di registri Docker interni che è necessario contattare senza inoltrare tramite proxy, aggiungerli nella variabile di ambiente NO_PROXY:
Environment="HTTP_PROXY=http://proxy.company.com"
Environment="HTTPS_PROXY=https://proxy.company.com"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.company.com"
Nota: Sostituire proxy.company.com con l'indirizzo effettivo del server proxy.
Passaggio 10. Salvare il file di configurazione e ricaricare il servizio docker.
[root@localhost]# systemctl daemon-reload
[root@localhost]# systemctl restart docker
Passaggio 11. Creare il processo di lavoro sull'immagine più recente con l'aiuto di questi comandi.
[root@localhost]# cd /tmp/core/docker/cliqr-container-worker
[root@localhost cliqr-container-worker]# docker build -t 'cliqr/worker:latest' .
Passaggio 12. Riavviare il servizio docker.
[root@localhost]# systemctl restart docker
Passaggio 13. Verificare se il contenitore del docker è configurato.
[root@localhost]# docker search coreos
[root@localhost yum]# docker search coreos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
bhuisgen/docker-zabbix-coreos Zabbix agent for CoreOS server 11 [OK]
radial/coreos-pxe Spoke container for running dnsmasq as PXE... 7 [OK]
olalond3/coreos-bitcoind coreos bitcoind 4 [OK]
geowa4/coreos-toolbox Replace the default toolbox image on CoreO... 2 [OK]
million12/linode-coreos-api Deploy CoreOS on Linode. 2 [OK]
pablocouto/coreos-sshguard sshguard for CoreOS 1 [OK]
christianbladescb/newrelic-coreos Run newrelic's sysmond in a container on C... 1 [OK]
allen13/coreos-ansible-toolbox Control CoreOS boxes with ansible using a ... 1 [OK]
shift/coreos-ubuntu-etcd 1 [OK]
majidaldoiongithub/coreos-nvidia run privileged to install nvidia and cuda ... 0 [OK]
skopciewski/coreos-pypy Wrapper for installing pypy on coreos server 0 [OK]
yummly/consul-coreos Consul using etcd on CoreOS for bootstrap.... 0 [OK]
shift/coreos-ubuntu-confd 0 [OK]
jwaldrip/vault-coreos Vault for CoreOS 0 [OK]
zumbrunnen/coreos-gce Google Cloud SDK for CoreOS. Useful for dy... 0 [OK]
cheungpat/coreos-toolbox CoreOS toolbox based on alpine linux 0 [OK]
bretif/coreos-marathon Launch bootstrap script to create mesos/ma... 0 [OK]
openai/coreos-bootstrap Tools for bootstrapping a coreos node. 0 [OK]
docku/pxe-coreos 0 [OK]
kciepluc/coreos-ipxe container with dnsmasq / ipxe environment ... 0 [OK]
kciepluc/coreos-ipxeweb Webserver for bootstrapping CoreOS through... 0 [OK]
evergreenitco/fluentd-kubernetes-coreos-secure Fluentd capture logs containers on Kuberne... 0 [OK]
steigr/coreos CoreOS in Docker 0 [OK]
brandfolder/vault-coreos Vault for CoreOS with an etcd backend. 0 [OK]
kciepluc/coreos-toolbox custom toolbox container for CoreOS 0 [OK]
[root@localhost yum]#
Una volta configurato il contenitore del docker, sarà necessario continuare l'installazione da core_installer.bin (se si sta installando CCO).
Passaggio 14. Modificare il file cliqr_modules.conf.
[root@localhost core]# vi /etc/cliqr_modules.conf
Passaggio 15. Aggiungere l'ancoraggio alla fine del file. In questo modo il file core_installer.bin viene informato che il docker è installato.
sysupdate
gateway
ntp
jdk8
tomcat8
gwtomcatapr
gwmongodb
docker
Passaggio 16. Eseguire nuovamente il file core_installer.bin per completare l'installazione.
[root@localhost tmp]# ./core_installer.bin centos7 vmware cco
Verifying archive integrity... All good.
Uncompressing Core Installer V 4.8.0.1.......................................................................................................................................................................................................................................................................................................................................................................................................................................
Installing Module: sysupdate
Module already installed: sysupdate
Installing Module: gateway
Module already installed: gateway
Installing Module: ntp
Module already installed: ntp
Installing Module: jdk8
Module already installed: jdk8
Installing Module: tomcat8
Module already installed: tomcat8
Installing Module: gwtomcatapr
Module already installed: gwtomcatapr
Installing Module: gwmongodb
Module already installed: gwmongodb
Installing Module: docker
Module already installed: docker
Installing Module: usermod
Installing Module: security
[root@localhost tmp]