[Docker] docker 시작하기(1)
Docker

[Docker] docker 시작하기(1)

반응형

아래 명령어는

public docker registry로 유명한 docker hub에서 docker/getting-started 라는 image를 로컬로 다운로드 받는 명령어입니다.

docker run -d -p 80:80 docker/getting-started

원래는 local에 있는 image들 목록 중에 이 이름을 갖는 image를 찾는데 없어서, docker hub에서 가져오는 겁니다.

 

 

기본 문법

아래는 기본 명령어 틀입니다. 

docker run [options] {image_name} [command]

맨 처음에 실행했던 명령어 중 -d 는 detach옵션입니다. 도커를 실행하면 기본적으로 container를 보여주게 되어있습니다. 

자세히는 container의 실행 process 자체가 이 쉘에 뜨게 되어있습니다. -d 옵션을 주면 process container를 백그라운드로 실행을 하겠다는 의미입니다.

-p 옵션은 publish 입니다. 서비스는 기본적으로 80번 포트로 제공되는데 localhost에서도 접속을 해야하기 때문에 이 둘을 연결하겠다는 옵션입니다. 

 

 

터미널에서 docker ps 라고 치면 다음과 같이 나오는데 하나씩 살펴보겠습니다.

 

 

CONTAINER ID 는 container가 실행될 때마다 생성되는 ID입니다.

IMAGE는 docker container를 띄울 때 사용된 이미지입니다.

COMMAND 는 container가 실행될 때 어떤 command를 주었는지 위 명령어에는 command를 주지 않았습니다.

하지만 COMMAND에 적혀있는 것은 기본 설정입니다.

NAMES는 도커를 조작할 때 사용하는 것이고 따로 설정하지 않았기 때문에 랜덤한 단어가 들어오게 됩니다.

 

실행중인 도커를 머추는 명령어가 2개 있습니다.

 

docker stop {container_id|conatinaer_name}


docker kill {container_id|conatinaer_name}

docker stop 은 SIGTERM이라는 신호를 보내고 docker kill 은 SIGKILL 이라는 신호를 보냅니다.

 

SIGTERM은 process 를 종료해달라는 것이고 SIGKILL은 바로 삭제를 해달라는 요청입니다.

 

 

docker를 다음과 같이 멈추고

docker stop [ID]

아래 명령어를 치면 실행이 멈춘 container까지 나오게 됩니다.

docker ps -a

 

그리고 아래와 같이 다시 실행 시킬 수 있습니다.

docker restart {container_id|container_name}

 

실행 중인 container에서 command를 날려서 container가 제대로 세팅되어있는지 볼 수 있는 명령어는 다음과 같습니다.

docker exec [options] {container_id|container_name} [command]

 

docker exec [ID] ls 

라고 치면 container내부에 있는 폴더와 파일을 볼 수 있습니다.

 

docker exec -ti [ID] sh

라고 치면 container에 접속해서 컨트롤 할 수 있습니다.

 

-i 옵션과 -t 옵션을 합쳐서 -it라고 쓸 수 있습니다. 

-i 옵션의 경우 interactive옵션으로 쉘 스크립트를 쓰기 위해서는 input을 받아야하는데 그 input을 localhost에서 친걸 container로도 쓰겠다는 의미이고

-t 옵션은 -tty옵션인데 터미널 환경을 만들어서 쓰겠다는 의미입니다.

 

 

마지막으로 다음 명령어로 docker 를 완전히 지울 수 있습니다.

docker rm [ID]

 

 

 

 

 

 

 

 

 

 

 

 

반응형