이미지 검색하기
$ sudo docker search <이미지 이름>
pull 명령으로 이미지 받기
$ sudo docker pull <이미지 이름>:<태그>
이미지 목록 출력하기
$ sudo docker images
컨테이너 생성하기
$ sudo docker run <옵션> <이미지 이름> <실행할 파일>
옵션
- -d : detached mode. 흔히 말하는 백그라운드 모드
- -p : 호스트와 컨테이너의 포트를 연결(포워딩)
- -v, --volume : 호스트와 컨테이너의 디렉토리를 연결(마운트)
- -e : 컨테이너 내에서 사용할 환경변수 설정
- --name : 컨테이너 이름 설정
- --rm : 프로세스 종료 시 컨테이너 자동 제거
- -it : -i(interactive)와 -t(Pseudo-tty)를 동시에 사용한 것으로 실행된 Bash 셸에 입력 및 출력 가능.
- --link : 컨테이너 연결 [컨테이너 이름:태그]
예시: ubuntu의 bash 실행
$ sudo docker run -i -t --name hello ubuntu /bin/bash
예시: ubuntu nginx 호스트 포워딩
$ sudo docker --name hello-nginx -d -p 80:80 -v /root/data:/data hello:0.1
- 백그라운드 모드
- -p 80:80 : 호스트의 80번 포트와 컨테이너의 80번 포트를 연결하고 외부에 노출. http://<호스트 IP>:80으로 접속할 시 컨테이너의 80번 포트로 접속됨
- -v /root/data:/data : 호스트의 /root/data 디렉토리를 컨테이너의 /data 디렉토리에 연결. /root/data 디렉토리에 파일을 넣으면 컨테이너에서 해당 파일 확인 가능.
TIP
명령을 실행하는 현재 디렉토리의 절대 경로 : $(pwd)
컨테이너 목록 확인
$ sudo docker ps
옵션
- -a : 정지된 컨테이너까지 모두 출력
컨테이너 실행하기
$ sudo docker start <컨테이너 이름>
컨테이너 재시작하기
$ sudo docker restart <컨테이너 이름>
컨테이너 접속하기
$ sudo docker attach <컨테이너 이름>
다음은 실행되고 있는 컨테이너에 표준 입력(stdin)과 표준 출력(stdout)을 연결
컨테이너 명령 내리기
$ sudo docker exec <컨테이너 이름> <명령> <매개 변수>
예시
$ sudo docker exec hello echo "Hello world"
예시 shell access
#Nginx
$ docker exec -ti nginx bash
#Web
$ docker exec -ti web bash
#Database
$ docker exec -ti db bash
컨테이너 정지하기
$ sudo docker stop <컨테이너 이름>
컨테이너 삭제하기
$ sudo docker rm <컨테이너 이름>
이미지 삭제하기
$ sudo docker rmi <이미지 이름>:<태그>
'기술' 카테고리의 다른 글
[Javascript] 기초: 주석, 자료형, 변수선언, 문자열 포멧팅, If문, Switch문, 논리연산자 (0) | 2019.09.16 |
---|---|
Docker vs Docker Compose vs Kubernetes (0) | 2019.09.16 |
[Django] 파일 저장 경로 지정 (0) | 2019.09.10 |
[Django] AWS RDS + Django 데이터베이스 설정 (0) | 2019.09.10 |
[Django] 유용한 Django Admin Tips! (0) | 2019.09.10 |