본문 바로가기

CLOUD/CUBE

Docker 명령어 및 컨테이너 실행

반응형

CentOS 설치 후 CUI가 불편하시다면 GUI 환경으로 바꿔도 됩니다

 

해당 명령어 입력 시 설치 할 때 올릴 수 있는 패키지들이 나옵니다.

 

yum grouplist

 

 

그 중 GNOME 데스크탑을 선택하시면 됩니다.


yum groupinstall -y "GNOME 데스크탑"

 

혹은 

 

yum -y install gnome-desktop3.x86_64

 

 

도커에서 실행되는 image, container, volume 등의 정보를 보여줍니다.

 

docker system df

 

 

컨테이너를 지우기 위해서는 먼저 실행되고 있는 컨테이너를 종료 후에 지워야 합니다.

 

docker container stop competent_blackburn
docker container rm competent_blackburn
docker ps -a

 

 

컨테이너를 전부 지우고 싶은데 너무 많다면 아래 명령어를 입력하면 해당 컨테이너의 컨테이너 ID가 나옵니다.

 

docker container ps -q

 

이걸 이용해서 아래 명령어를 입력하면 전부 중지가 됩니다.(NAME으로는 안됩니다)


docker container stop $(docker container ps -q)

 

nginx를 -d 옵션을 써서 백그라운드로 올립니다. foreground로 올릴 경우 해당 컨테이너가 실행되는 동안 명령어 입력이 안되기 때문에 백그라운드로 실행 합니다.

 

docker run -d nginx

 

inspect 옵션은 해당 컨테이너의 메타데이터 값을 확인 할 수 있습니다.(여기서 IP 확인 가능합니다)


docker container inspect laughing_haibt

 

IP 확인 후 curl을 이용하여 확인해 봅니다.


curl http://172.17.0.2

 

restart는 재시작 명령어 입니다.(container 명령어는 생략 가능합니다)


docker restart laughing_haibt

 

--name 옵션으로 이름을 지정할 수 있습니다.


docker run -d --name=web httpd

 

 

이번엔 OS를 올려옵니다.


docker run -d centos:7

 

하지만 보이지 않습니다. 실행되지 않은 것이 아니라 실행이 되었지만 아무작업도 하지 않았기 때문에 stop이 된겁니다.

컨테이너는 기본적으로 아무 일도 하지 않으면 stop이 됩니다. 이와 같은 경우 /bin/bash 에서 아무 일도 일어나지 않기 때문에 stop이 된 것입니다.


docker ps

 

sleep으로 100초간 /bin/bash에게 일을 주어 봅니다.


docker run -d centos:7 sleep 100s

 

이제 centos7이 보입니다.

docker ps

 

 

 

현재는 HOST OS에서 httpd에 접근이 불가능 합니다. 같은 네트워크 대역에 있지 않기 때문입니다.

하지만 포트 포워딩으로 가능하게 할 수 있습니다.

 

web container를 -p 옵션으로 [모든IP]:80번 포트로 하나 생성합니다.
docker run -d --name=myweb -p :80 httpd:2.4

 

확인 합니다. [모든IP]:49153 에서 80번 포트로 맵핑되는 것을 볼 수 있습니다.


docker ps

 

49153 포트가 모든 tcp IP에 리슨 된걸 알 수 있습니다.


netstat -ntlp | grep 49153

 

docker는 기본적으로 iptables 방화벽을 씁니다. nat가 49153포트에서 [httpd IP주소]:80 으로 포워딩 되고 있습니다.


iptables --table nat -L -n | grep 49153

 

 

 

HOST OS에서 http://192.168.56.101:49153 주소로 확인해 봅니다. 잘 작동하고 있습니다.

 

반응형