우리는 보통 docker를 사용할 때 여러 이미지들을 layer로 쌓아서, 원하는 형태로 만든다. Ubuntu이미지에 Apache 웹 서버 이미지를 쌓아서 웹서버 이미지를 만들어 내는 것을 예로 들 수 있다. 이러한 docker 이미지가 리눅스 컨테이너 형태로 실행한 상태를 컨테이너라고 한다. 결국 docker는 이미지와 컨테이너를 다뤄서 작업하는 것이므로, 주요 명령어를 잘 이해하는 것이 중요하다.
😊 이미지 관련 명령어
기능 | 명령어 | 사용 예시 |
이미지 다운로드 | docker pull {이미지명} | docker pull ubuntu |
다운받은 이미지 목록 확인 | docker images | |
이미지 삭제 | docker rmi {이미지ID 혹은 이미지 REPOSITORY} | docker rmi ubuntu |
모든 이미지 삭제 | docker rmi -f $(docker images -q) | |
이미지 조사 | docker inspect {이미지명} | docker inspect ubuntu |
😊컨테이너 관련 명령어
기능 | 명령어 | 사용 예시 |
컨테이너 생성 | docker create {이미지명} | docker create ubuntu //ubuntu이미지 생성 후 임의의 이름을 가진 컨테이너 생성 |
컨테이너 이름 변경 | docker create --name {내가 원하는 이름} {이미지명} | docker create --name mycontainer ubuntu //ubuntu이미지 생성 후 "mycontainer"컨테이너 생성 |
전체 컨테이너 목록 확인 | docker ps | |
실행중인 컨테이너 목록 확인 | docker ps -a | |
컨테이너 실행 | docker start {컨테이너명 혹은 컨테이너 ID} | docker start mycontainer //"mycontainer"컨테이너 실행 |
컨테이너 중지 | docker stop {컨테이너명 혹은 컨테이너ID} | docker stop mycontainer //"mycontainer"컨테이너 중지 |
실행 중인 컨테이너 중지 | docker stop $(docker ps -a -q) | |
컨테이너 모두 삭제 | docker rm $(docker ps -a -q) | |
컨테이너 재실행 | docker restart {컨테이너명 혹은 컨테이너ID} | docker restart 5dc // 컨테이너ID가 5dc로 시작하는 컨테이너 재실행 |
컨테이너 삭제 | docker rm {컨테이너명 혹은 컨테이너ID} | docker rm mycontainer //"mycontainer"컨테이너 삭제 |
😊docker run 주요 옵션 정리
1. - it 옵션
"키보드 입력을 컨테이너의 표준 입력으로 전달하는 옵션"
아래 예시와 같이 docker run -it ubuntu 명령어를 통해 ubuntu컨테이너를 생성 후, 그 안으로 들어갈 수 있게 한다.
2. - - name 옵션
"컨테이너 생성 시에 이름을 설정하는 옵션"
아래 예시와 같이 docker run -it --name mycontainer ubuntu 명령어를 통해 mycontainer라는 이름의 컨테이너를 만들었다.
ctrl+p+q로 컨테이너를 중지하지 않고 나와 docker ps로 확인해 본 결과, 실행중인 "mycontainer" 컨테이너를 볼 수 있다.
3. - d 옵션
"컨테이너를 백그라운드에서 실행하는 옵션"
아래 예시와 같이 docker run it -d --name mycontainer ubuntu 명령어를 통해 mycontainer라는 이름의 컨테이너를 백그라운드에서 실행하도록 했다. docker ps로 확인해 본 결과, 실행중인 "mycontainer" 컨테이너를 볼 수 있다.
4. - - rm 옵션
"컨테이너 종료 시 컨테이너를 자동으로 삭제하는 옵션"
아래 예시와 같이 docker run -it --rm --name mycontainer ubuntu 명령어를 통해 mycontainer라는 이름의 컨테이너를 rm옵션을 붙여 종료 시 자동삭제 되도록 생성했다. 컨테이너를 종료(exit) 후 docker ps -a로 전체 컨테이너 목록을 출력해본 결과 삭제된 모습을 볼 수 있다.
5. - - p 옵션
"호스트와 컨테이너 포트를 연결하는 옵션"
아래 예시와 같이 docker run -d -p 9999:80 --name mycontainer httpd 명령어를 통해 mycontainer라는 이름의 컨테이너를 만들었다. -d옵션으로 백그라운드로 실행시켰고, -p 9999:80옵션으로 외부 호스트의 9999번 포트를 컨테이너의 80번 포트와 연결하도록 했다.
※ 주의 : EC2 인스턴스에서 보안그룹 > 인바운드 규칙 편집 > 규칙 추가> 포트범위 9999 모든 IP 규칙 저장
외부에서 IP:9999로 접속했을 때 웹서버가 동작함을 확인할 수 있다.
'Docker' 카테고리의 다른 글
[Docker] Docker에 Nginx웹서버 구축하기 (0) | 2023.03.19 |
---|---|
[Docker] EC2 Ubuntu서버에 docker 설치하기 (0) | 2023.03.12 |
[Docker] Docker 개념 정리 (0) | 2022.03.08 |
댓글