IT_World

[docker] 기초 :설치부터 - Container 까지 본문

OS/Ubuntu

[docker] 기초 :설치부터 - Container 까지

engine 2021. 5. 7. 11:21

도커 설치(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(컨테이너) 실행하는 방법

  1. 도커 레지스트리에서 Centos Image를 Pull받고, local에서 download
  2. 이 이미지를 통해 컨테이너 실행

 

실행중인 컨테이너 확인

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/
Comments