20200227 docker container간 connection 및 기타 등등

2020. 2. 27. 23:28개발/오늘의 소소한꿀팁

기존의 docker-compose 안에 있는 cache file 땜에 새로운 docker container를 build하고자 할 때 문제가 생겼다. 정확한 이유는 아직도 잘 모르겠으나 충돌하는..?문제인 것 같다. 링크 참조:https://stackoverflow.com/questions/37706635/in-docker-apt-get-install-fails-with-failed-to-fetch-http-archive-ubuntu-com

 

In Docker, apt-get install fails with "Failed to fetch http://archive.ubuntu.com/ ... 404 Not Found" errors. Why? How can we get

My team uses Docker (with ubuntu:14.04 base image) for local development and we often have to rebuild some or all of our images. But we often get failures downloading packages with apt-get install,...

stackoverflow.com

그리고 이를 해결하기 위하여 다음과 같은 옵션을 넣고 build를 하였다. (참조 링크: https://github.com/docker/compose/issues/1049)

docker-compose rm --all
docker-compose pull
docker-compose build --no-cache
docker-compose up -d

원래는 마지막에 up 할 때 --force-recreate라는 옵션을 넣으라고 되어있는데, 밑의 글들 읽어보니 불필요한 것 같아 안 넣었다.

 

 

그리고 docker compose.yml 에서 내가 abc라는 container의 5000번 port를 expose하고 외부요청이 들어올때 nginx를 경유하여 들어오도록 설정하였으면, nginx/sites-enabled/pd.conf에 (여기서 pd란 production의미...) 

upstream abc_flask {
    server abc0:5000;
    server abc1:5000;
}

를 넣어줘야 한다.(abc가 flask를 사용해서 abc_flask이고, 내가 abc container를 abc0과 abc1 둘로 나눴기 때문에 위와 같은 설정)

 

# For internal
server {
    listen 80;
    server_name nginx;

    include /etc/nginx/mime.types;
    default_type text/html;
    gzip on;
    gzip_comp_level 5;
    gzip_http_version 1.1;
    gzip_min_length 256;
    gzip_types application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/x-component;
    gzip_proxied any;

    charset utf-8;

    location /abc/ {
        proxy_pass http://abc_flask/abc/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
} 

그리고 내부 통신을 위해 이런 설정을 넣는다는데... 아직은 정확히 이해를 못하겠다. 통신 공부를 좀 더 해봐야겠다. (but how..?ㅠㅠ)