[Docker]3. 도커 기본 명령어[도커 엔진 | 도커 기초 | Week 2]
DevOps/Docker

[Docker]3. 도커 기본 명령어[도커 엔진 | 도커 기초 | Week 2]

목차

- 도커 컨테이너 실행 명령어

- 목록 조희 명령어

- 도커 기본 명령어


도커 컨테이너 실행 - docker run

--interatcitve, -i 표준 입력창을 엽니다.

--tty. -t           장치에 tty를 할당합니다.

 

--name           컨테이너의 이름을 세팅합니다.

                     *이 옵션을 사용하지 않을 경우 영어 단어를 임의로 조합하여 세팅됩니다.

 

--detach, -d     백그라운드에서 컨테이너를 실행합니다.

--publish, -p    호스트/컨테이너 포트 포워딩을 세팅합니다.

 

도커 컨테이너 목록 조희 - docker container ls

도커 컨테이너 이름 변경 - docker container rename

 

도커 컨테이너 프로세스 실행 - docker container exec

도커 컨테이너 로그 출력 - docker container log 

 

 


실습

 

우분투 서버로 powerShell7에서 접속합니다.

 

 

 

도커 컨테이너 실행

 

sudo -> super user do의 약자

 

대화형 컨테이너 실행

sudo docker container run -i -t --name centos centos:lastest

이미지, 이미지 버전

 

 

 

백그라운드형 컨테이너 실행

 

sudo docker container run -d -p 80:80 --name apache httpd:latest

 

 

동일한 포트에서 이미 docker container 이미지가 돌아가고 있어서 안되네요.

동일한 포트에서 docker container를 생성할 수 없습니다.

 

그렇다면 이미 생성된 docker server에 접속을 해봅시다.

 

 

해당 주소를 알아내고 브라우저에서 접속을 해보면 아래와 같이 잘 동작하는 것을 확인할 수 있습니다. 

 

 

sudo docker container logs web-server를 통해서 logs를 확인할 수 있습니다.

 

 

대화형 컨테이너, 백그라운드형 컨테이너를 실행하는 것을 알아보았습니다.

 

 

 

 

현재 도커 엔진에서 작동되고 있는 container 확인

sudo docker container ps 

 

up상태인 server를 확인할 수 있습니다.

 

 

ifconfig로 해당 도커 컨테이너의 이미지의 ip주소를 브라우저에 입력하게 되면, 잘 동작하는지 확인할 수 있습니다.

 

 

sudo docker container stop <컨테이너명>

 

 

이제 다시 한번 실행해봅시다.

run을 사용하면 될 거라고 생각했지만, run 명령어는 해당 도커 컨테이너가 생성되지 않았을 때,

생성과 실행을 같이하는 명령어입니다.

 

sudo docker container ps -a 명령어는 정지된 컨테이너까지 모두 보여주는 명령어입니다.

 

 

 

Exited는 정지되어있다는 것을 의미합니다.

 

run 대신에

sudo docker container start <컨테이너명>

 

이미 생성된 도커 컨테이너를 실행하기 위해서는 run대신에 start라는 명령어를 사용해야 합니다.

 

 

 

한 번 run으로 실행하게 되면, 실행한 컨테이너를 삭제하기 전에 동일한 이름으로 컨테이너를 생성할 수 없습니다.

동일한 이미지는 가능하지만 동일한 컨테이너명으로 생성할 수 없습니다.

 

sudo docker container restart <컨테이너명>

 

sudo docker container ps

 

을 통해서 도커 컨테이너가 실행 중인지를 알 수 있습니다.

 

 

생성 시점과 실행 시점이 다른 것을 확인할 수 있습니다.

 

 

구동 중인 컨테이너에 연결

sudo docker container attach apache

 

접속한 로그를 확인할 수 있습니다.

 

Ctrl + C 종료

 

 

컨테이너 내부로 들어가서 프로세스 실행하는 명령어

sudo docker container exec -it <컨테이너명>

/bin/echo 로 들어가 문자열 형태로 출력합니다.

 

 

bash 실행

 

 

컨테이너 내부의 구동 중인 프로세스 확인 

sudo docker container top <컨테이너명>

 

 

컨테이너 이름 변경

sudo docker container rename <기존 컨테이너명> <바꿀 컨테이너명>

 

run 명령어를 통해서 container를 생성하게 되는데, 나중에 rename 할 때 이 명령어가 유용하게 쓰입니다.

 

 

컨테이너 이미지 변경

sudo docker container cp apache:/usr/local/apache2/htodocs/index.html /tmp/index.html

 

cat /tmp/index.html 로 확인

 

 

 

 

 

 

 

복사해서 파일을 수정하고 다시 덮어 씌웁니다.

 

sudo docker container cp /tmp/index.html apache:/usr/local/apache2/htodocs/index.html

 

 

컨테이너 변경사항 확인

sudo docker container diff <컨테이너 명>

 

 

A, D, C 는 변경사항을 각각으로 범주화해서 나타낸 것입니다.

 

CChanged, 변경이 이루어진 directory를 의미합니다.

AAdded, 기존의 없던 것이 추가되었다는 것을 의미합니다.

DDeleted, 기존의 파일이 삭제된 것을 의미합니다.