티스토리 뷰
[ 최초 이미지 다운로드 ]
아래처럼 이미지 다운로드를 진행한다.
docker pull <image_name>:<tag>
- docker search를 통해 어떤 버전을 다운로드 받을 수 있는 지에 대한 내용은 차후 포스팅
docker pull centos:6.7
[ 컨테이너 생성 ]
docker run -d -it --name <container_name> -v /pkg:/pkg \
-p 8081:80 -p 8026:25 <image>:<tag> /bin/bash
잠깐 구문을 뜯어보면 컨테이너 이름은 <container_name> 에서 지정 될 것이고, 컨테이너를 생성하기 위한 이미지는 <image>:<tag>에 centos:6.7 처럼 넣어주면 된다. -v는 host에 pkg라는 디렉토리를 guest에서 /pkg라는 디렉토리로 마운트해서 사용하겠다는 의미한다 (host:guest)
한편 -p는 PAT(port address translation)으로 host에 8081로 들어오는 패킷은 container에 80으로 PAT 시키고, host에 8026로 들어오는 패킷은 container에 25로 PAT시키겠다는 의미이다.
[ 명령어 ]
# 이미지 목록 보기
docker images
# 컨테이너 목록 보기
docker ps -a
# 이미지 삭제
해당 이미지로 생성된 컨테이너가 존재하면 삭제 안됨. 컨테이너 먼저 지워야 하며 이미지 이름에는 태그를 함께 명시해주는 것이 안전하다.
docker rmi <image_name>
# 컨테이너 삭제
docker rm <container_name>
# 컨테이너에서 host로 파일 복사
아래와 같은 형식으로 사용 한다. (host에서 container로 복사하는 건 설명 생략....)
docker cp <container_name>:/tmp/aaa ./.
# container에 접속
위에서 생성한 container(tmp-name)에 아래와 같이 접속하도록 함
docker attach <container_name>
docker exec -it <container_name> bash
# container 시작
docker start <container_name>
# container 종료
docker stop <container_name>
[ 새로운 이미지 제작 ]
# 깨끗한 container 생성
위에서 받아 놓은 centos 6.7이미지가 이미 있으니 그걸 사용해서 container를 생성 함
docker run -d -it --name <container_name> -v /pkg:/pkg <image>:<tag> /bin/bash
위에서 /pkg는 host:container 의미로 공유 디렉토리 설정 임.
# 이미지 생성
tag를 붙이는 것이 나중에 관리 차원으로 좋다.
docker commit <container_name> <image_name:tag>
'개발 > docker' 카테고리의 다른 글
nvidia-docker로 개발환경 한방에 세팅하기 (14) | 2019.05.07 |
---|---|
RuntimeError: DataLoader worker (pid 13881) is killed by signal: Bus error. (10) | 2019.04.15 |
이미지, 컨테이너 export, import (0) | 2016.12.12 |
네트워크 관리 (0) | 2016.12.01 |
docker 운영 최소 환경 (0) | 2015.11.20 |
- Total
- Today
- Yesterday