시작하세요! 도커/쿠버네티스를 읽고 나름대로 정리한 내용입니다.
도커 포트 포워딩
도커 컨테이너에서 돌아가고 있는 프로그램에 외부에서 접근할 때
외부 → 호스트 컴퓨터 → 도커 컨테이너
순서를 거치게 된다.
접근을 허용하기 위해 도커 컨테이너가 올라가 있는 컴퓨터(호스트)의 port와 컨테이너의 port를 연결(바인딩) 해줘야 한다.
-p 호스트의_포트_번호:컨테이너의 _포트_번호 와 같이 -p 옵션을 사용해 바인딩 해줄 수 있다.
docker run -i -t -p 80:80 ubuntu:14.04
컨테이너에 리액트로 만든 프론트엔드 서버가 돌아가고 있다고 한다면,
브라우저(외부)에서 localhost의 80 포트로 접속하고, 이는 도커 컨테이너의 80 포트로 연결된다.
도커 run 명령어의 -d 옵션 : detatched 모드로 컨테이너 실행, 켜지면서 백그라운드에서 돌아가고 있다. -i -t 옵션과 반대다.
실행할 때는 detatched 모드로 했지만, 나중에 컨테이너 내부로 들어가고 싶을 수 있다.
이때는 docekr exec -i -t 컨테이너_이름 /bin/bash 명령어를 사용하면 된다.
-e 옵션 : 환경 변수 설정 ( -e MYSQL_ROOT_PASSWORD=password )
--link : 하나의 컨테이너에서 다른 컨테이너로 접근할 때 IP 주소는 재시작할 때마다 재할당 되기 때문에 어렵다. 그래서 컨테이너 이름을 이용해서 접근하도록 설정한다. (현재 deprecated 되었기 때문에 도커 브릿지 네트워크를 사용한다.)
도커 볼륨
도커의 기본 단위는 이미지와 컨테이너인데 이미지는 한번 만들어지면 변경되지 않는다. 컨테이너에 계속 데이터가 쌓이게 되는데 컨테이너는 너무 손쉽게 삭제할 수 있다는 단점이 있다. 또한 삭제된 컨테이너는 복구할 수 없다. 컨테이너가 삭제되면 안에 있는 데이터도 삭제되기 때문에 도커 볼륨을 이용해서 데이터를 밖에(호스트, 볼륨 컨테이너 등) 저장할 수 있다.
호스트와 볼륨 공유
-v 옵션을 사용해 호스트에 있는 디텍토리를 공유할 수 있다. 이렇게 되면 컨테이너가 삭제돼도 호스트에 있는 디렉터리는 남기 때문에 데이터를 보존할 수 있다.
docker run -p 80:80 -v ~/Desktop/htodcs:/usr/local/apache2/htdocs/ httpd
도커 네트워크
컨테이너를 생성하면 docker0 브릿지를 통해 외부와 통신할 수 있음
다른 네트워크 드라이버를 쓸 수도 있음
도커 기본으로 쓸 수 있는 네트워크 목록 : 브리지, 호스트, 논 네트워크 등
docker network ls
컨테이너를 생성할 때 자동으로 연결되는 docker0 브릿지를 활용하도록 설정 (디폴트)
bridge network
docker0이 아닌 사용자 정의 브릿지 사용할 수도 있다.
docker network create --driver bridge mybridge
mybridge 라는 이름으로 네트워크 생성
--net 명령어로 컨테이너가 이 네트워크를 사용하도록 설정할 수 있다.
docker run -i -t --name mynetwork_container --net mybridge ubuntu:14.04
'도커 & 쿠버네티스' 카테고리의 다른 글
Docker ) 멀티 스테이지 빌드 (0) | 2022.11.19 |
---|---|
Dockerfile을 이용한 이미지 build (0) | 2022.11.16 |
도커 이미지 (0) | 2022.11.07 |
도커 컨테이너 로그 저장하기 (1) | 2022.10.31 |
[도커] 도커의 기본, 이미지와 컨테이너 (0) | 2022.10.19 |