도커 사용법 및 명령어
도커 버전 확인(도커 설치 확인)
docker --verstion
docker 이미지 검색
cli 검색 방식
sudo docker search [검색 단어] # ex sudo docker search centos
docker hub 검색 방식
현재 가지고 있는 도커 이미지 리스트 출력
docker images
docker 이미지 받아오기
docker pull <이미지 이름>
최신 버전의 centos 받아오기
docker pull centos
특정 버전 (특정 tag)의 centos 받아오기
- Docker Hub에서 Image와 Tag 확인
sudo docker pull centos:centos7
docker 이미지 삭제
sudo docker rmi [이미지 id 또는 이미지 이름]
Docker Container
Docker images에서 container로 실행
sudo docker run <옵션> <사용자 컨테이너 이름> <이미지 이름:Tag이름> <실행할 파일>
sudo docker run -it --name 컨테이너이름 이미지이름 실행할 파일
# ex) centos
sudo docker run -it --name testcentos centos:latest bin/bash
Docker 컨테이너 시작
sudo docker start [컨테이너 이름 or ID]
Docker 컨테이너 재시작
sudo docker container restart [컨테이너 이름 or ID]
Docker 컨테이너 종료
sudo docker stop [컨테이너 이름 or ID]
Docker 컨테이너 접속
sudo docker attach [컨테이너 이름 or ID]
# 또는
docker exec -it [컨테이너 이름 or ID] bash
Docker run 옵션
- -i: interactive
- 표준 입력(stdin)을 활성화하며, 컨테이너와 연결(attach)되어 있지 않더라도 표준 입력을 유지
- 보통 이 옵션을 사용하여 Bash에 명령을 입력
- -t: tty
- tty 모드를 사용.
- Bash를 사용하려면 이 옵션을 설정
- 이 옵션을 설정하지 않으면 명령을 입력할 수는 있지만, 셀이 표시되지 않음.
- --name 컨테이너이름
- 컨테이너 이름을 설정
- -d: detach
- Detached 모드로 설정
- 데몬 모드라고 부르며, 컨테이너가 백그라운드로 실행됨.
- p: publish
- 호스트와 컨테이너의 포트를 연결(포트 포워딩)
- ex) -p 8888:8888
- v: volume
- 데이터 볼륨을 설정
- 호스트와 컨테이너의 디렉토리를 연결하여, 파일을 컨테이너에 저장하지 않고 호스트에 바로 저장.(마운트)
- --rm
- 프로세스 종료시 컨테이너 자동 제거
- -e: env
- 컨테이너 내에서 사용할 환경변수를 설정
- 보통 설정 값이나 비밀번호를 전달할때 사용.
- -e GRANT_SUDO=yes
- -u, --user:
- 컨테이너가 실행될 리눅스 사용자 계정 이름 또는 UID를 설정
- --gpus
- 컨테이너에서 호스트의 NVDIA GPU를 사용할 수 있도록 설정.
- 호스트는 NVIDIA GPU가 장착된 Linux 서버이여야됨
- NVIDIA driver가 설치되어 있어야 함.
- --restart
- 재시작 옵션
- no: 재시작하지 않음.(기본값)
- on-failure: 에러로 인해 종료될시 재시작
- always: 항상 재시작.(수동으로 종료한 경우, docker가 재시작되면 같이 재시작
- unless-stopped: 컨테이너가 종료되지 않는다면, 항상 재시작. 종료되었다면 직접 시작하기 전까지는 Docker가 재시작되도 컨테이너는 재시작 x
- ex) docker run restart always
포트포워딩 설정
- -p host내부 프로세스 포트번호:컨테이너 내부 프로세스 포트번호
sudo docker run -p 80:80 -i -t --name testcentos centos:latest bin/bash
Docker 포그라운드 또는 백그라운드로 실행가기
Docker 컨테이너에서 나가기
- 나가면 컨테이너가 종료되는 방식
exit
나가면 컨테이너가 종료되지 않는 방식
- 키 Ctrl+P 와 Ctrl+Q를 차례대로 입력
실행중인 container 확인 및 삭제
동작 중인 container 확인
sudo docker ps
정지된 container 확인
sudo docker ps -a
container 삭제
sudo docker rm [container id]
실행중인 container 삭제
# 중지하고 삭제
sudo docker stop [container id] # 컨테이너 실행 중지
sudo docker rm [container id]
# 강제 삭제
docker rm -f [container id]
Docker 컨테이너 커밋(컨테이너 -> 이미지)
- 현재까지 작업해 놓은 ubuntu 컨테이너를 그대로 저장(백업)
sudo docker commit [백업할 컨테이너 id or 이름] [이미지 이름]
Docker 이미지및 컨테이너 세부사항 보기
# 이미지
docker image inspect [이미지 명]
# 컨테이너
docker container inspect [컨테이너 명]
컨테이너 옵션 재설정
docker update [옵션] [컨테이너 명]
# docker update restart always code-server
도커 볼륨
- 도커 볼륨은 /var/lib/docker/volumes에 생성된다.
도커 볼륨 생성
docker create [도커볼륨 이름]
도커 볼륨 리스트 출력
docker volume ls
도커 볼륨 정보 확인
docker volume inspect [도커볼륨 이름]
도커 컨테이너 바인드 마운트로 볼륨 생성
docker run -v [호스트_폴더이름]:[컨테이너_폴더_이름]
도커 컨테이너 도커볼륨으로 볼륨 생성
docker run -v [도커_볼륨_이름]:[컨테이너_폴더_이름]
'서버' 카테고리의 다른 글
Django을 위한 웹 지식 (0) | 2022.06.20 |
---|---|
개인용 서버 만들기 5편(딥러닝 서버 구축 2편) (0) | 2022.06.19 |
개인용 서버 만들기 5편(딥러닝 서버 구축 1편) (0) | 2022.06.17 |
개인용 서버 만들기 4편(code-server 구축) (0) | 2022.06.04 |
개인용 서버 만들기 3편(포트포워딩과 DDNS 설정) (0) | 2022.05.27 |