터미널 내 도커(docker) 컨테이너 명령어, 옵션 정리
도커를 사용하면서 명령어를 정리해야겠다는 생각을 했습니다.
환경
OS : Ubuntu 22.04
Docker version : 20.10.17 (중요하지 않습니다.)
이미지 사용 : ingu627/hadoop:spark3.3.0
0. 명령어 전체 개요
이미지출처 1
- 이미지(image) : 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 파일이다.
- 이미지는 도커 허브 링크에 존재한다.
- 예시 : docker hub - ingu627
- 컨테이너(container) : 프로세스와 비슷한 개념이다.
1. 도커 이미지 가져오기
- pull : 도커 허브로부터 가져오고 싶은 도커 이미지를 가져온다.
계정명/저장소명:태그명
$ docker pull ingu627/hadoop:spark3.3.0
-
실행결과
2. 도커 컨테이너 확인
- docker images : 이미지를 조회할 때 사용된다. 전체 이미지 목록을 출력해준다. 2
- docker ps : 컨테이너의 리스트를 반환해준다.
- 현재 가동중인 컨테이너만 출력해준다.
-
docker ps -a : 가동중, 멈춘 컨테이너를 모두 다 표현해주는 명령어이다.
-
실행결과
3. 컨테이너 생성 및 시작
- run은 여러가지 옵션을 통해 다양한 방식으로 컨테이너를 생성하고 실행할 수 있도록 해준다.
- 명령어는 다음과 같다.
$ docker run [옵션] 이미지명:태그명 [명령어] [파라미터]
- [옵션]
- -i, --interactive : 컨테이너에 attach(접속)하지 않은 상태여도 표준 입력(stdin)을 활성화하고 유지한다.
- -t, --tty : TTY 모드를 사용하는 것으로, 셸에 명령어를 작성할 수 있다.
- -it :
-i
와-t
를 모두 적용한 것이다. 즉, 컨테이너를 종료하지 않은 채, 터미널의 입력을 계속해서 컨테이너로 전달하기 위해서 사용한다. 3 - -d, --detach : 컨테이너를 백그라운드에서 실행하게 한다. 실행한 컨테이너 id를 출력한다.
- 보통 데몬(daemon) 모드라 부른다.
- --name : 컨테이너 이름을 설정한다.
- -h, --hostname : 컨테이너의 호스트 이름을 설정한다.
- -p, --publish : 호스트와 컨테이너의 포트를 연결한다.
[호스트 포트]:[컨테이너 포트]
- --privileged : 컨테이너 안에서 호스트의 리눅스 커널 기능(Capability)을 모두 사용한다. 4
- 호스트의 주요 자원에 접근할 수 있다.
- --link : 컨테이너끼리 연결한다.
- ex. “[컨테이너명]:[별칭]”
- --rm : 실행이 끝나고 즉시 제거한다.
- -m, --memory : 메모리 한계를 설정한다.
- -v, --volume : 데이터 볼륨을 설정한다.
- --gpus : 컨테이너에서 호스트의 GPU를 사용할 수 있도록 설정한다.
- 해당 설치는 다음 링크를 참고한다.
- 도커(docker)를 이용해 파이썬 가상환경 구축을 위한 이미지 배포하기
$ docker run -it -d -h spark -p 8080:8080 --privileged=true --name spark ingu627/hadoop:spark /sbin/init
4. 컨테이너 시작
- start : 정지된 컨테이너를 시작하게 해준다.
docker start [컨테이너 id]
$ docker start spark
-
실행결과
4.1 VSCODE 연결하기
- 실행중인 컨테이너를 vscode에서 작업하고 싶다면 다음 과정을 보면 된다.
- vsocde를 실행하여
ctrl+shift+p
를 누른다. - 검색창에서
Remote-Containers: Attach to Running Container
를 찾아 클릭한다.
- vsocde를 실행하여
4.2 실행중인 컨테이너에 접속하기
- exec : 실행중인 컨테이너에서 명령어를 실행시켜 준다.
docker exec [option] [컨테이너 id] [명령어]
5
- 옵션
- --it : 컨테이너를 종료하지 않은 채, 터미널의 입력을 계속해서 컨테이너로 전달하기 위해서 사용한다. (세션 연결)
- --d : 명령어를 백그라운드에서 실행하게 해준다.
$ docker exec -it spark \bin\bash
5. 컨테이너 중지
- stop : 실행 중인 컨테이너를 중지하고 싶을 때 이 명령어를 쓴다.
docker stop [컨테이너 id]
$ docker stop spark
6. 컨테이너 삭제
- rm : 이 명령어를 사용하여 삭제한다.
$ docker rm [옵션] [컨테이너 id]
- 옵션
- -f, --force : 실행 중인 컨테이너를 강제로 삭제
- -v, --volume : 할당한 불륨을 삭제
댓글남기기