devops/docker(16)
-
docker image 배포
docker image 배포 이전 글과 같이 image를 배포하기 위해 save 및 load를 사용하여 tar파일로 만들어 배포할 수 있지만 옮기는데 귀찮고 파일이 크거나 도커 엔진의 수가 많다면 이미지를 파일로 배포하기 어렵습니다. 또한 도커의 이미지 구조인 레이어 형태를 이용하지 않으므로 비효율적입니다. 이를 해결하기 위한 방법은 1. docker hub private 제한이 있지만 public으로 단순하게 psuh, pull 하면되어 매우 간단하게 사용할 수 있습니다. 이미지 저장소(Reooisutiry) 생성 docker hub에 접속한 다음 https://hub.docker.com/ 로그인 하면 아래와 같이 보입니다. 여기서 create Repository를 눌러주면 아래와 같이 이름, 설명등과..
2020.01.31 -
docker 이미지
docker 이미지 지금까지 우리가 만들어온 컨테이너는 이미지를 기반으로 만들어진다. 컨테이너에서 무슨일을 하던 기반이 되었던 이미지에는 영향을 끼치지 않는다. 우리가 npm, apt-get install은 npm 레퍼지토리 apt 레퍼지토리 등에서 다운 받습니다. docker도 마찬가지로 docker hub라는 곳에서 이미지를 다운받습니다. 이 이미지는 공식적으로 인정받은 이미지 부터 개인 개발자가 올리고 다운받을 수 있습니다. 그리고 git과 비슷하게 개인의 이미지를 private로 올릴 수 있습니다. 하지만 하나의 공간만이 무료이고 나머지는 유료라서 주의 하셔야합니다. 직접 https://hub.docker.com/ Docker Hub Docker Certified:Trusted & Supporte..
2020.01.31 -
docker 컨테이너 자원 할당 제한
docker 컨테이너 자원 할당 제한 컨테이너를 생성하는 run, create 명령어에서 컨테이너의 자원 할당량을 조정하도록 옵션을 입력할 수 있습니다. 아무런 옵션을 입력하지 않으면 호스트의 자원을 제한 없이 사용할 수 있습니다. 하지만 모든 자원을 사용하게 된다면 호스트에 영향을 끼칠 뿐더러 다른 컨테이너에도 영향을 끼치게 됩니다. 이전까지 테스트 한 컨테이너의 자원제한을 확인할 수 있는 방법은 inspect 명령어를 사용하는 것입니다. docker inspect test_ubuntu 결과 내용 "CpuShares": 0, "Memory": 0, "NanoCpus": 0, "CgroupParent": "", "BlkioWeight": 0, "BlkioWeightDevice": [], "BlkioDev..
2020.01.29 -
docker 컨테이너 log 남기기
docker 컨테이너 log 남기기 container안에서 어떤 일(에러 및 로그 정보)이 생기는지는 매우 중요합니다. 도커는 컨테이너의 표준 출력과 에러 로그를 별도의 메타데이터 파일로 저장하며 이를 확인하는 명령어를 제공합니다. logs 명령어 docker run -d --name mysql \ -e MYSQL_ROOT_PASSWORD=1234 \ mysql:5.7 -d옵션을 사용하여 백그라운드로 실행하게 만들겠습니다. container를 생성한 후 docker logs 명령어를 통해서 log정보를 통해 실행정보를 확인할 수 있습니다. docker logs mysql ✔ 9577 18:29:03 2020-01-26 09:29:03+00:00 [Note] [Entrypoint]: Entryp..
2020.01.26 -
docker 네트워크
docker 네트워크 docker에서 컨테이너를 만든 다음 자동으로 내부에서 사용할 수 있는 ip가 할당된다. 172.17.0.2부터 차례대로 순차적으로 배치된다. 이 값은 재시작할 때 마다 다르게 배치된다. container가 생성될 때 마다 외부와의 네트워크 연결을 위해 호스트에서는 자동으로 veth라는 네트워크 인터페이스가 생성된다. veth는 도커가 자동으로 생성된다. veth는 자동으로 docker0라는 브리지와 바인딩돼 외부와 통신할 수 있습니다. 컨테이너가 생성되면 자동으로 docker0브릿지와 연결되지만 자체적으로 제공하는 네트워크 드라이브를 선택하여 사용할 수 있다. 네트워크 드라이브로는 bridge, host, none, container, overlay등이 있다. 기본적으로 사용할 수..
2020.01.22 -
container를 외부에 노출하기
container도 가상머신과 똑같이 ip를 할당받습니다. docker의 container의 경우에는 172.17.0.x를 순차적으로 할당받습니다. 컨테이너를 생성한 후 ifconfig로 확인하면 아래와 같이 ip가 할당된 것을 확인할 수 있습니다. 현재와 같은 상황이면 외부에서 접근할 수 없습니다. 외부에 컨테이너의 어플리케이션을 노출시키려면 et0의 ip와 포트를 host의 ip와 포트를 바인딩 시켜야 합니다. docker run -i -t -p 80:80 --name externalContainer ubuntu:14.04 -p 호스트의 포트 : 컨테이너의 포트 호스트의 특정 IP를 사용할 수도 있다. 192.168.0.100:7777:80과 같이 사용할 수 있다. apache는 일반적으로 80번 포..
2020.01.22