| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- Dockerfile
- 빅데이터
- Django
- 도커
- hyper-v
- Window 10
- 하둡
- hdfs
- hadoop
- Jupyter notebook
- Docker #도커 #이미지 #컨테이너 #리눅스 #Back-end
- docker desktop
- 이미지
- topic
- 데이터 수집
- nginx
- orchestration
- container
- big data
- docker-compose
- wsl2
- Kafka
- Apache kafka
- docker
- Today
- Total
개발자 일기장
[Docker #4/docker command 정리] 본문
도커 커맨드를 개발할 때마다 항상 찾아보는것에 지치기 시작한다. 정리해서 자주 사용되는 명령어에 대해서 포스팅하는것도 나쁘지 않을것 같다는 생각이 들어서 관련 명령어 및 실제 개발하면서 겪었던 상황들에 대한 해결 방안 및 팁 들을 정리 하려고 한다.
COMMANDS
SEARCH
docker search centos# docker search centos
- Docker Hub로부터 사용가능한 image를 찾는 명령어
- Docker는 Dokcer HUB 를 통해 Git Hub 처럼 사용자들간의 이미지 공유를 할 수 있는 환경이 구축되어 있다
- 공식이미지는 galid/centos 처럼 / 앞에 사용자의 이름이 붙지 않는 것
PULL
docker pull centos:latest
- docker hub로 부터 image를 다운받는 명령어
TAG
docker tag [IMAGE_NAME] [USERID]/[[REPOSITORY]:TAG]
- 도커 이미지에 레포지토리와 태그를 설정한다.
PUSH
docker push [USERID]/[[REPOSITORY]:TAG]
- 도커 허브에 태그한 이미지를 업로드한다.
IMAGES (image 목록 보기)
dokcer images
- 현재 Host PC에 다운 받아져있는 image들을 출력하는 명령어
CREATE
docker create -i -t --name CONTAINER IMAGE
- 이미지로 컨테이너 생성
-i : 상호 입출력
-t : tty를 활성화해서 bash 셸을 사용
--name : 생성할 컨테이너 이름 지정
RUN
docker run -it --rm -d -p xxxx:yyyy -v /path/to/yours/:/path/to/container --name CONTAINER REPOSITORY:TAG
- 이미지를 사용해서 컨테이너를 실행시킨다.
-d : 컨테이너를 백그라운드에서 동작시킨다.
-it : 컨테이너와 통신할 수 있는 tty를 오픈하여 보여준다.
-p : 1996:80 포트포워딩
-v : 볼륨 마운드 Host volume : container [/root:/mnt/1]
--rm : 컨테이너 종료시 컨테이너 자동삭제
--name : 컨테이너에 별명을 달아준다.
CP
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
- 컨테이너 외부에서 내부로 혹은, 컨테이너 내부에서 외부로
파일 또는 디렉토리를 복사한다.
COMMIT
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker commit CONTAINER IMAGE_NAME
- 컨테이너의 변경사항을 반영하여 새로운 이미지를 만든다.
INSPECT
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
- 도커 오브젝트 (네트워크, 이미지, 컨테이너 등)들의 저수준
레벨의 정보들을 출력한다. 디버깅 시 유용하게 사용할 수 있다.
RM
docker rm [OPTIONS] CONTAINER [CONTAINER...]
- 컨테이너를 삭제할 때 사용한다.
PRUNE
docker container prune
(docker stop $(docker ps -a -q) \ docker rm $(docker ps -a -q))
- 존재하는 모든 컨테이너 삭제
RMI
docker rmi IMAGE
- 이미지를 삭제할 때 사용한다.
EXEC
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
- 동작중인 컨테이너 내부로 명령을 전달한다.
docker exec -it <컨테이너> /bin/bash
- 과 같은 구문을 통해 컨테이너와 통신할 수 있는 tty를 오픈하여 보여준다.
START
docker start CONTAINER
- 생성된 컨테이너를 실행한다.
RESTART
docker restart CONTAINER
- 생성된 컨테이너를 재시작한다.
STOP
docker stop CONTAINER
- 생성된 컨테이너를 종료한다.
ATTACH
docker attach CONTAINER
- 동작중인 컨테이너로 접속한다.
RENAME
docker rename old_container new_container
- 컨테이너의 이름을 다시 지정한다.
BUILD
docker build <옵션> <Dockerfile 경로>
Dockerfile 경로는 로컬 경로와 URL모두 사용가능하며,
-를 설정하면 표준 입력으로 Dockerfile 내용을 받을 수 있음
--force-rm=false: 이미지 생성에 실패했을 때도 임시 컨테이너를 삭제
--no-cache=false: 이전 빌드에서 생성된 캐시를 사용하지 않음
(Docker는 이미지 생성 시간을 줄이기 위해서 Dockerfile의 각 과정을 캐시하는데,
이 캐시를 사용하지 않고 처음부터 다시 이미지를 생성)
-q, --quiet=false: Dockerfile의 RUN이 실행한 출력 결과를 표시하지 않음
--rm=true: 이미지 생성에 성공했을 때 임시 컨테이너를 삭제
-t, --tag=””: 저장소 이름, 이미지 이름, 태그를 설정 ex) [저장소 이름]/[이미지 이름]:[태그]
INSPECT
docker container inspect jupyter_test | grep Memory
- 현재 사용중인 jupyter_user01 컨테이너의 리소스를 확인
UPDATE
docker update --memory=1g --memory-swap=3g jupyter_test
- 현재 사용중인 jupyter_user01 컨테이너의 리소스(메모리)를 설정(--memory 처럼 --cpu도 가능)
TIPS
컨테이너에서 작업을 하다가 빠져나올때
1) Ctrl + d & exit
- 컨테이너가 종료되면서 빠져나옴
2) Ctrl + p & Ctrl + q
- 컨테이너가 백그라운드에 살아있는 채로 빠져나옴
CentOS 컨테이너에서 systemctl 커맨드 사용시 permission 에러
1) /sbin/init을 쉘로 하는 컨테이너를 백그라운드로 실행시킨다.

2) 백그라운드로 생성한 컨테이너에 exec를 통해 /bin/bash 프로세스를 생성한다

3) 확인
- 컨테이너 내부에서 systemctl 사용 가능확인

출처 :
Docker 명령어 정리
Docker 사용법 CentOS Docker는 OS의 자원을 사용하기 때문에 기본적으로 Root 사용자에서 명령어를 사용해야한다 1. search (image 검색) # docker search centos - Docker Hub로부터 사용가능한 image를 찾는 명..
captcha.tistory.com
nicewoong.github.io/development/2018/03/06/docker-commit-container/
Docker(도커) 컨테이너 커밋, 이미지 푸쉬하기 - nicewoong
container 이름이 ubuntu-cpp-driver 였고, 이를 이미지로 저장할 때 이미지 이름도 동일하게 했다.
nicewoong.github.io
'Docker' 카테고리의 다른 글
| [Docker #5/설치하고 시작하기(Window)] (0) | 2020.11.25 |
|---|---|
| [Docker #3/도커 컴포즈 설치 및 활용] (0) | 2020.11.24 |
| [Docker #2/설치하고 시작하기(Linux)] (0) | 2020.11.22 |
| [Docker #1/도커 개념정리] (0) | 2020.11.22 |