분류 전체보기

-p 옵션을 지정하여 포트포워딩을 설정할 수 있다. $ docker container run -dt -p HOST_PORT:CONTAINER_PORT --name CONTAINER IMAGE_REPO:TAG 브릿지 네트워크를 사용하는 모든 컨테이너는 외부에서 접속할 때 포트포워딩을 해야 접근가능하다. 예시 web2 컨테이너에 8080번 포트로 접근하는 경우 80번 포트로 포트포워딩하는 예시이다. [user@localhost ~]$ docker run -d -p 8080:80 --name web2 httpd:latest 8864c0be9446bd844ec08e882f12e94c376f156c4a29bf55375020c82fb9c965 현재 실행중인 컨테이너 목록을 통해 포트 포워딩이 되었는지 확인할 수 있..
1. link 사용하기 도커에서는 같은 bridge 네트워크를 사용하는 컨테이너끼리 통신할 수 있다. link를 사용하면 컨테이너의 이름 또는 별칭을 지정하여 통신할 수 있다. link는 '--link 컨테이너_이름' 형태로 --link 옵션을 통해 지정한다. 단 link로 연결해줄 컨테이너는 이전에 미리 생성되어있어야 한다. 우선 web 컨테이너를 생성한다. [user@localhost ~]$ docker container run -d --name web3 httpd:latest 827c38ecb011516344191485c051299e72852146ecaf55ca57ee242d9bc688cc os6 컨테이너를 실행시키면서 web3를 링크한다. $docker run -idt os6 --link web3..
1. Docker Network 아키텍처 네트워크와 연결될 수 있는 네트워크 Docker Host 의 기본 Bridge Network 인터페이스 : docker0 그림 예시로 보면 docker0은 호스트의 eth0 (192.168.0.2)와 연결되어있다. Docker Container 의 기본 Bridge Network 인터페이스 : vethXXX 2. Docker Network 관련 명령어 2-1 Docker Network 상세 정보 확인 docker network inspect NETWORK_NAME 2-2 Docker Network 생성 $ docker network create [OPTION] NETWORK_NAME 도커는 IP를 172.17.0.X 형태로 순차적으로 IP를 나눠주게 된다. 2-3..
Docker Volume 도커 볼륨은 도커에 의해서 관리되는 스토리지이다. 볼륨을 사용하는 경우는 다음과 같다. 다수의 컨테이너 사이 데이터를 공유할 때 컨테이너에서 호스트 구성을 분리할 때 컨테이너 데이터를 원격 호스트 또는 클라우드에 저장하고 싶을 때 다른 호스트로 데이터를 백업 및 복원할 때 Docker Volume 생성 docker volume create NAME 생성된 볼륨들은 /var/lib/docker/volumes 에 저장된다. Docker Volume 목록 확인 docker volume ls Docker Volume 상세 정보 확인 docker volume inspect NAME Docker Volume 컨테이너에 연결하기 -v 옵션을 붙여서 도커 볼륨에 연결해야 한다. docker r..
도커의 컨테이너 내에서 생성되는 데이터는 런타임 데이터이다. 즉, 컨테이너가 삭제되면 데이터들도 함께 삭제된다. 따라서 영구적인 목적으로 데이터를 저장하고 싶다면 컨테이너에 저장하는 것이 아니라, 컨테이너의 외부 메모리에 마운트 시킨 후 메모리에 저장을 하는 것을 권한다. Bind Mount 호스트의 파일 디렉토리와 컨테이너의 디렉토리를 연결하는 방식이다. 그렇지만 Bind Mount는 도커에 의해서 관리되지 않으며 호스트의 파일시스템에 대해 의존적이다. 또한 호스트의 민감한 파일까지 접근가능하므로 보안에 취약하다는 문제점이 있다. Bind Mount 는 컨테이너를 생성하거나 실행을 시작할 때 연결할 수 있으며 이미 실행중인 컨테이너에는 Bind Mount로 연결시킬 수 없다. 명령어는 docker ru..
shell 명령어 중에 $(명령어) 이런식으로 표기되어 쓰는 경우가 있다. 예를 들어 도커에서 호스트의 모든 컨테이너들을 한꺼번에 지우고 싶을때 docker container rm $(docker container ls -a -q) 라고 명령어를 사용할 수 있다. 이때 $() 안에 있는 명령어가 먼저 실행된 후 , 바깥의 명령어가 실행된다. 모든 컨테이너의 id를 출력해주고 이를 다시 대체하여 argument 로 쓸 수 있다는 의미이다. 즉, docker container rm $(docker container ls -a -q) 는 docker container rm AAA BBB CCC DDD 와 같다. 따라서 명령어를 실행하면 결과적으로 AAA BBB CCC DDD 컨테이너가 모두 삭제될 것이다 !
Docker Container 내부로 연결 (attach) $ docker container attach CONTAINER $ docker attach CONTAINER attach 명령어 사용은 권장되지 않는다 그 이유는 attach 명령어 실행후 컨테이너 내부에 직접 접근하여 exit하면 실제 운영중인 서비스가 중단될 수 있기 때문이다. → 엄청난 문제가 생김 ! [예시] attach 명령어를 통해 컨테이너 centos7-10에 직접 접근하여 실행한다. [root@localhost ~]# docker start centos7-10 centos7-10 [root@localhost ~]# docker attach centos7-10 [root@164145c46559 /]# ls anaconda-post...
1. Docker Container 환경변수 설정하기 docker container run -it --name CONTAINER_NAME -e VAR=VALUE IMAGE 2. Docker Container CPU 제한 $ docker container run -it —name CONTAINER_NAME —cpus NUM IMAGE [예시] 여기서 NUM은 CPU의 개수를 의미하며 1 == 100%, 0.2 == 20% 이다. --cpus 옵션으로 CPU 사용량을 20%로 제한한 후 dd 명령어를 통해 부하를 발생시킨다. docker stats로 현재 CPU사용량을 확인해보면 다음과 같이 20% 에 가깝게 사용률이 제한받는 것을 확인할 수 있다. 3. Docker Container 메모리 제한하기 doc..
minjiwoo
'분류 전체보기' 카테고리의 글 목록 (28 Page)