소개
이 문서에서는 프록시 서버에서 인터넷에 액세스할 수 없을 때 도커 컨테이너를 해결하는 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 버전을 기반으로 합니다.
- CloudCenter 버전 4.x
- CCO(CloudCenter Orchestrator)
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
엔터프라이즈에서 인터넷에 액세스하기 위해 프록시가 필요한 경우 docker 컨테이너를 구성해야 합니다.
문제
이것은 Docker 컨테이너가 인터넷에 연결할 수 없을 때 문제를 재현하는 절차입니다.
루트 사용자가 CCO에서 core_installer.bin을 실행하려고 할 때:
[root@localhost tmp]# ./core_installer.bin centos7 vmware cco
이 오류가 표시됩니다.
솔루션
1단계. core_installer.bin 파일을 다음 인수와 함께 실행하여 코어 폴더를 생성합니다.
[root@localhost]# /core_installer.bin --noexec --keep
2단계. 핵심 폴더로 이동합니다.
[root@localhost]# cd core
3단계. 코어 폴더에서 setup.sh 스크립트를 실행하여 docker를 설치합니다.
[root@localhost core]# /setup.sh centos7 vmware docker
스크립트가 "Failed in Docker" 오류로 인해 실패합니다.
4단계. Dockerfile을 수정합니다.
[root@localhost core]# vi docker/cliqr-container-worker/Dockerfile
5단계. Dockerfile의 ENV 섹션에 프록시 서버 정보를 추가합니다.
ENV JAVA_VERSION 1.7.0
ENV http_proxy http://proxy.company.com
ENV https_proxy https://proxy.company.com
참고:proxy.company.com을 실제 프록시 서버 주소로 교체합니다.
6단계. docker 서비스에 대한 시스템 드롭다운 디렉터리를 만듭니다.
[root@localhost core]# mkdir /etc/systemd/system/docker.service.d
7단계. docker http-proxy.conf 파일을 만듭니다.
[root@localhost core]# vi /etc/systemd/system/docker.service.d/http-proxy.conf
8단계. 프록시 서버 정보를 추가합니다.
[Service]
Environment="HTTP_PROXY=http://proxy.company.com"
Environment="HTTPS_PROXY=https://proxy.company.com"
Environment="NO_PROXY=localhost,127.0.0.1"
9단계. 프록시 연결 없이 연결해야 하는 내부 Docker 레지스트리가 있는 경우 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"
참고:proxy.company.com을 실제 프록시 서버 주소로 교체합니다.
10단계. 구성 파일을 저장하고 docker 서비스를 다시 로드합니다.
[root@localhost]# systemctl daemon-reload
[root@localhost]# systemctl restart docker
11단계. 이러한 명령의 도움을 받아 작업자를 최신 이미지로 빌드합니다.
[root@localhost]# cd /tmp/core/docker/cliqr-container-worker
[root@localhost cliqr-container-worker]# docker build -t 'cliqr/worker:latest' .
12단계. docker 서비스를 다시 시작합니다.
[root@localhost]# systemctl restart docker
13단계. docker 컨테이너가 구성되어 있는지 테스트합니다.
[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]#
docker 컨테이너를 구성했으면 core_installer.bin에서 설치를 계속해야 합니다(CCO를 설치하는 경우).
14단계. cliqr_modules.conf를 수정합니다.
[root@localhost core]# vi /etc/cliqr_modules.conf
15단계. 파일 끝에 docker를 추가합니다.그러면 core_installer.bin에 docker가 설치되었음을 알립니다.
sysupdate
gateway
ntp
jdk8
tomcat8
gwtomcatapr
gwmongodb
docker
16단계. core_installer.bin을 다시 실행하여 설치를 완료합니다.
[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]