반응형

 

1. 컨테이너 내려받기

도커 리파지토리에 다양한 컨테이너가 있지만 예제로 nginx 컨테이너를 가져 온다면 다음과 같이 명령어를 실행합니다. “latest“라는 태그는 가장 최신 버전의 컨테이너 이미지를 가지고 오는 의미입니다.

 

# docker pull NAME[:TAG]

$ docker pull nginx:latest

 

2. 컨테이너 실행

컨테이너 실행은 일반적으로 docker run 명령어를 사용하며 아래와 같은 형식의 패턴을 갖고 있습니다. ubuntu:18.04 컨테이너를 실행하려면 다음과 같이 실행할 수 있습니다.

 

# docker run [OPTION] IMAGE[:TAG] [COMMAND]

$ docker run -i -t ubuntu:16.04 /bin/bash

 

3. 포어그라운드(fore-ground) 실행

t 옵션은 tty를 할당하고 i옵션은 표준 입출력을 사용합니다. 예시로 ubuntu 18.04 버전의 컨테이너를 -i, -t 옵션을 주어 생성하고 해당 컨테이너의 기본 커맨드인 /bin/bash를 실행합니다.

 

$ docker run -i -t ubuntu:16.04 bin/bash

 

4. 데몬으로(detached) 실행

-d 옵션을 통해 데몬으로 실행합니다. 다양한 컨테이너들을 해당 모드들로 실행합니다. 예시로 nginx 컨테이너를 실행합니다.

 

$ docker run -d -p 80:80 nginx

 

5. 컨테이너 이름 할당

컨테이너를 명령어로 관리하기 위해 --name 옵션을 통해 이름을 지정합니다. 이름을 지정하지 않으면 랜덤하게 이름이 부여되지만 관리하기는 어려우니 주의하시면 됩니다.

 

$ docker run -i -t --name my_ubuntu ubuntu:16.04 /bin/bash

 

6. 컨테이너 포트 포워딩

생성 시에 -p 옵션 부여합니다. 위의 데몬 실행 예시에서 nginx 컨테이너에 80포트를 노출하였는데 여러개를 노출 시키려면 -p를 여러개 사용하면 된다.

 

$ docker run -d --name my_nginx -p 80:80 -p 3306:3306 nginx:latest

 

8. 컨테이너 종료 & 나오기

주로 컨테이너 내에서 터미널을 통해 입력하는데 exitCtrl + P,Q 2가지가 있습니다. exit 명령어는 컨테이너를 아예 종료합니다. Ctrl + P,Q 명령어는 현재 컨테이너 상태를 그대로 두고 연결된 상태에서 나오게 됩니다.

 

$ exit

 

$ Ctrl + P,Q

 

9. 컨테이너 목록 확인

docker ps 명령어를 통해 현재 가동되고 있는 컨테이너의 정보를 출력합니다.

 

$ docker ps

 

10. 모든 컨테이너 목록 확인

docker ps 명령어는 가동이 중지된 컨테이너는 출력하지 않습니다. -a 옵션을 포함하면 만들어져 있는 모든 컨테이너 정보를 출력합니다.

 

$ docker ps -a

 

11. 컨테이너 재시작 및 연결

docker start 명령어를 통해 기존 실행이 중지 된 컨테이너를 시작할 수 있습니다. 그 후 docker attach 명령어를 통해 해당 컨테이너에 접속합니다.

 

$ docker start my_ubuntu

start 한 컨테이너에 내부에 attach를 통해 연동합니다.

 

$ docker attach my_ubuntu

 

12. 컨테이너 정지

docker stop 명령어를 통해 현재 실행되고 있는 컨테이너를 구동 정지합니다.

 

$ docker stop my_ubuntu

 

13. 컨테이너 삭제

docker rm 명령어를 통해 실행을 중지 한 컨테이너를 컨테이너 목록에서 삭제합니다. 삭제하지 않고 구동만 정지한 컨테이너는 스토리지 어딘가에 남아있어 용량을 차지합니다.

 

$ docker rm my_ubuntu

 

14. 정지와 삭제를 한번에 실행

docker rm -f 옵션을 통해 가동 되고 있는 컨테이너를 한번에 정지 및 삭제를 할 수 있습니다.

 

$ docker rm -f my_ubuntu

 

15. 컨테이너 목록에 있는 모든 컨테이너 삭제

컨테이너 목록에 있는 모든 컨테이너를 한 번에 지울 수 있습니다. 항상 모든, 강제라는 용어가 들어간 명령어를 사용할 때는 다시 확인하고 주의해서 사용하셔야 합니다.

 

$ docker container prune

 

16. 컨테이너 종료 시 자동 삭제 옵션

docker run --rm 옵션을 통해 컨테이너를 종료하면 자동으로 삭제되도록 설정합니다.

 

$ docker run -i -t --rm ubuntu:18.04

위 명령어는 우분투 18.04 컨테이너를 실행하고 내부에서 작업을 마치고 exit 명령어로 컨테이너 종료 시 해당 컨테이너를 자동으로 삭제합니다.

 

17. 컨테이너 자세한 상태 정보 출력

docker inspect 명령어를 통해 해당 컨테이너의 자세한 정보 및 상태를 알 수 있습니다. 컨테이너가 비정상 종료 된 원인 혹은 컨테이너의 세부 정보를 보고 싶을 때 주로 사용합니다.

 

# docker inspect [container]

$ docker inspect my_ubuntu

 

18. 도커 이미지 목록

docker pull 명령어를 통해 내려받은 도커 이미지 들의 목록을 출력합니다.

 

$ docker images

 

19. 도커 이미지 삭제

컨테이너도 더 이상 사용하지 않고 해당 이미지도 사용하지 않아 삭제하게 된다면 docker rmi 명령어를 통해 이미지를 삭제할 수 있습니다.

 

# docker rmi IMAGE[:TAG]

$ docker rmi ubuntu:16.04

반응형
반응형

 

외부망에서는 인터넷이 잘 되서 리눅스 종류별 central repository를 통해서

손쉽게 ping이나 ifcofig와 같은 도구들을 설치할 수 있습니다. 

하지만 외부에서 도커 이미지를 만든 후 내부망으로 가져 온 후

레거시나 클라우드의 다양한 시스템들과의 통신을 위해서는

ping이나 ifconfig등의 명령어의 활용이 필요하죠? 

 

도커 베이스 이미지 생성 후... 

리눅스 유형별로 ping, ifconfig 등의 네트워크 도구 설치하는 가이드를 제공해 드리겠습니다. 

 

 

1. CentOS, Redhat 

sudo yum update
sudo yum install iputils
sudo yum install net-tools
 
2. Ubuntu

sudo apt-get update
sudo apt-get install iputils-ping
sudo apt-get install net-tools
 
설치 후 내부로 반입해서 테스트 해 보면 되겠네요. 

 

반응형

+ Recent posts