Search
Duplicate

docker command

Docker Image 명령어

설치된 도커 이미지 보기

docker images
Plain Text

도커 이미지 다운로드

docker pull <이미지>:<태그>

Ubuntu 18.04LTS 이미지 pull

docker pull ubuntu:18.04
Plain Text

도커 이미지 제거

docker rmi <이미지id>
Plain Text

컨테이너 이미지 뜨기

이미지를 뜰 컨테이너가 실행되고 있다면 먼저 종료한다
docker commit <컨테이너명> <이미지 이름>:<태그> docker commit <컨테이너명> <이미지 이름>/<태그>
Plain Text

이미지를 로컬에 저장하기

이미지가 로컬에 저장될 때에는 tar 압축파일 형식으로 저장됨
dockekr save <옵션> <이미지이름>:<태그> -o, --output: 로컬로 저장할 이미지의 이름 (이미지 이름 뒤에 .tar확장자 붙여주기) (-o <로컬 이미지 이름> [-o backup.tar])
Plain Text
예시
docker save -o backups.tar ubuntu18.04:latest
Plain Text

로컬의 이미지를 도커로 불러오기

tar형식의 이미지를 도커로 불러온다.
docker load <옵션> -i, --input: 로컬의 이미지 이름 (-i <로컬 이미지 이름> [-i backup.tar])
Plain Text
예시
docker load < backups.tar docker load -i backups.tar
Plain Text

Docker Volume 명령어

도커 볼륨 상태 보기

docker volume ls
Plain Text

도커 볼륨 생성

docker volume create --name <볼륨이름> docker volume create --name myvolumename
Plain Text

Docker Container 명령어

도커 컨테이너 상태 보기

docker ps <옵션> -a 현재 동작하지 않는 컨테이너까지 보기
Plain Text

컨테이너 생성만 하기

docker create <옵션> <이미지명:태그> -i, --interactive=false: 표준 입력(stdin)을 활성화하며 컨테이너와 연결(attach)되어 있지 않더라도 표준 입력을 유지. -t, --tty=false: TTY 모드(pseudo-TTY). Bash를 사용하려면 이 옵션을 설정해야 함. (이 옵션을 설정하지 않으면 명령을 입력할 수는 있지만 셸이 표시되지 않음) -p, --publish: 호스트에 연결된 컨테이너의 특정 포트를 외부에 노출. ( -p <호스트포트>:<컨테이너 내부 포트> [-p 80:80]) ( 8080:80 시 내부 80번 포트를 외부 8080포트와 연결함. 외부에서 8080으로 접속 시 80으로 매칭) ( -p <IP 주소>:<호스트 포트>:<컨테이너 내부 포트> 호스트에 네트워크 인터페이스가 여러 개이거나 IP 주소가 여러 개 일 때 사용.) -v, --volume: 호스트의 <호스트 경로>를 컨테이너의 <컨테이너 경로>와 연결함 ( -v <호스트 경로>:<컨테이너 경로> [-v /root/docker_volume:/share_volume]) --name: 생성할 때 컨테이너에 이름을 설정함. ( --name <컨테이너명> [--name test01])
Plain Text
예시
docker create -i -t --name container01 -p 8080:8080 ubuntu:latest
Plain Text

컨테이너 생성과 동시에 실행하기

docker run <옵션> <이미지명:태그> 옵션은 create와 공유함.
Plain Text
예시
docker run -i -t --name container01 -p 8080:8080 ubuntu:latest
Plain Text

컨테이너 시작하기

docker start <컨테이너명, 컨테이너ID>
Plain Text

컨테이너 종료하기

docker stop <컨테이너명, 컨테이너ID>
Plain Text

컨테이너 재실행하기

docker restart <컨테이너명, 컨테이너ID>
Plain Text

컨테이너 접근하기

docker attach <컨테이너명, 컨테이너ID> attach로 안들어가지면 docker exec -i -t <컨테이너명, 컨테이너ID> bash 루트로 접근하기 docker exec -u 0 -it wafjenkins bash
Plain Text

컨테이너에 접근하지 않고 명령 실행하기

docker exec <옵션> <컨테이너명> <명령> <매개변수>
Plain Text
(일반적으로 exec를 사용하는 명령어 옵션) docker exec -i -t <컨테이너명> <명령> <매개변수>
Plain Text

컨테이너를 종료하며 빠져나오기

컨테이너 내에서 exit 또는 Ctrl+D
Plain Text

컨테이너를 종료하지 않고 빠져나오기

컨테이너 내에서 (Ctrl+ P + Q) 또는 (Ctrl+P) + (Ctrl+Q
Plain Text

호스트와 컨테이너 간 파일,폴더 복사

호스트 -> 컨테이너 docker cp <호스트 경로> <컨테이너명>:<컨테이너 경로> 컨테이너 -> 호스트 docker cp <컨테이너명>:<컨테이너 경로> <호스트 경로>
Plain Text

컨테이너 제거하기

docker rm <컨테이너명, 컨테이너ID>
Plain Text

컨테이너 IP 확인하기

docker inspect -f "{{ .NetworkSettings.IPAddress }}" <컨테이너명>
Plain Text

이외 도커 세팅

부팅 시 컨테이너 자동시작하기

cd /etc/systemd/system vi <설정할 서비스명>.service ============================================================================== # 그대로 복사 [Unit] Wants=docker.service After=docker.service [Service] RemainAfterExit=yes ExecStart=/usr/bin/docker start <실행할 docker container 이름> ExecStop=/usr/bin/docker stop <실행할 docker container 이름> [Install] WantedBy=multi-user.target ============================================================================== systemctl start <설정한 서비스명>.service systemctl enable <설정한 서비스명>.service -> 부팅시 실행할 수 있도록 해당 서비스 활성화 # systemctl enable 명령어를 실행하였을 때 정상적으로 동작한다면 심볼릭 링크가 생성될 것임. # /etc/systemd/system/multi-user.target.wants/<설정한 서비스명>.service 에서 # /etc/systemd/system/<설정한 서비스명>.service로 심볼릭 링크 생성 # systemctl이 enable되었는지 설정 보기 systemctl list-unit-files | grep docker
Plain Text

컨테이너에 파이썬 세팅하기

apt-get install -y python3 python3-pip
Plain Text

컨테이너에서 한국어가 깨질 때

특별한 세팅을 해주지 않는다면 컨테이너를 재부팅할 때마다source /etc/profile을 해줘야 함
apt-get install -y locales locale-gen ko_KR.UTF-8 ====================================================== # /etc/profile의 맨 밑줄에 해당 내용을 추가한 뒤 저장 export LC_ALL=ko_KR.UTF-8 ====================================================== source /etc/profile 또는 해당 명령어 차례로 입력 apt-get install locale apt-get install language-pack-ko locale-gen ko_KR.UTF-8 dpkg-reconfigure locales update locale LANG=ko_KR.UTF-8 LC_MESSAGE=POSIX /etc/default/locale 파일 수정 LANG=ko_KR.UTF-8 LC_ALL=ko_KR.UTF-8 LC_MESSAGES=POSIX 이후 재부팅
Plain Text

컨테이너에서 init.d와 비슷한 옵션 주기

/root/.bashrc의 맨 밑줄에 컨테이너를 시작할 때 같이 실행할 명령을 추가한다.