아래 명령어는
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]
'Docker' 카테고리의 다른 글
[docker] m1 맥에서 docker mysql 에러해결 (0) | 2022.04.24 |
---|---|
[Docker] docker로 mysql 설치하고 접속하기 (0) | 2022.04.21 |
[Docker] docker 실행하기(2) (0) | 2022.04.09 |