IT_World
[docker] 기초 :설치부터 - Container 까지 본문
도커 설치(curl이 없을 경우 sudo apt-get curl)
curl -s https://get.docker.com | sudo sh
설치확인
docekr -v
docker centos Registry Pull
docker pull centos
이미지 이름은 :을 구분자로 이미지 이름과 태그로 구분된다.
태그를 지정하지 않으면 기본값으로 latest가 사용되므로 centos는 centos:latest와 같다.
이미지를 다운로드할 때 : pull (install이나 download와 같은 명령 대신 pull 사용)
이미지를 업로드 할 때 : push
새로운 이미지 생성 : commit
이미지의 차이 확인 : diff
다운 받은 이미지 확인
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 98b2f85ba865 1 weeks ago 457MB
Container(컨테이너) 실행하는 방법
- 도커 레지스트리에서 Centos Image를 Pull받고, local에서 download
- 이 이미지를 통해 컨테이너 실행
실행중인 컨테이너 확인
docker ps
root@Root:~$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 98b2f85ba865 loadname:1.0.0 "bash" 2 days ago Up 2 days name |
종료된 컨테이너까지 출력
docker ps -a
docker container를 image 파일로 commit
docker commit 98b2f85ba865 loadname:1.0.0
docker push
1) 도커 클라우드 로그인
docker login
2) 도커 유저 아이디 변수 지정하기
export DOCKER_ID_USER="myid"
3) docker Image Tag 달기
docker tag ubuntu-cpp-driver $DOCKER_ID_USER/myid
4) 태그가 적용되어 있는 이미지를 도커 클라우드에 푸쉬
docker push $DOCKER_ID_USER/myid
docker image save
# 형식 : docker save -o <output file> <image>:<tag>
$ docker save -o file_name.tar loadname:1.0.0
docker run
$ docker run --runtime=nvidia -dti -v /path:/path --name NAMES loadname:1.0.0 bash
docker 접속
docker exec 명령 이용
docker exec : container에 특정 명령을 실행할 수 있는 것
명령 /bin/bash
container의 shell에 접속할 때 docker exec 명령을 하면 표준 입출력을 열고 가상 tty (pseudo-TTY)를 통해 접속하겠다는 의미이기 때문에, 옵션으로 -it라고 덧붙여야 한다.
root@~~# docker exec -it 98b2f85ba865 /bin/bash
root@98b2f85ba865:~#
hostname이 해당 container id로 바뀌면 container 내부에 접속한 상태라는 것이다.
접속 종료
exit
docker(도커) [host=local(호스트=로컬)에서 컨테이너, 컨테이너에서 로컬] 파일 전송하는 방법
1. 호스트에서 컨테이너로 파일 전송하는 방법
1) 폴더 내 파일 모두 전송
docker cp /경로/. 내가 설정한 CONTAINER NAMES:/경로/
docker cp /path/. NAMES:/path/
2) 특정 한 파일만 전송
docker cp /경로/파일 이름. 확장자 내가 설정한 CONTAINER NAMES:/경로/
docker cp /path/file_name.jpg NAMES:/path/
2. 컨테이너에서 호스트로 파일 전송하는 방법
내가 설정한 CONTAINER NAMES:/경로/. /경로/
docker cp NAMES:/path/. /path/
'OS > Ubuntu' 카테고리의 다른 글
[linux/shell] alias vi~/.bashrc source ~/.bashrc (0) | 2021.09.11 |
---|---|
[Ubuntu] scp 서버간 데이터 전송하기 file, directory (파일 전송 프로토콜 / 파일 보내기) (0) | 2021.06.02 |
[package]requirements.txt 패키지 관리 및 list freeze 정리 (0) | 2021.05.25 |
[Linux] tree Command(트리 명령)사용 (0) | 2021.05.23 |
[docker] 도커 이미지(Image)와 컨테이너(Container) 차이 (0) | 2021.05.11 |