Docker 설치 및 컨테이너 관리

1. Window용 Docker Desktop 설치 

 

1) 도커 설치

  Docker 홈페이지 : www.docker.com

 

Empowering App Development for Developers | Docker

Learn how Docker helps developers bring their ideas to life by conquering the complexity of app development.

www.docker.com

2) Window용 Docker Desktop 설치 : docs.docker.com/docker-for-windows/install/

 

Install Docker Desktop on Windows

 

docs.docker.com

Docker 실행 확인

Windows PowerShell

> wsl -l -v
> docker -v

3) RHEL

인터넷이 연결된 서버에서 yum utility 설치

 

 

 

2. 도커 컨테이너 관리

1) 도커 이미지 다운로드 받기

Ubuntu20.04/Windows PowerShell

# image 찾기
> docker search tensorflow

# image 다운로드
> docker pull tensorflow
> docker pull pytorch

2) 이미지 확인

Ubuntu20.04/Windows PowerShell

> docker images

(결과)

더보기

PS D:\work\workspace\TensorFlow-master> docker images
REPOSITORY                         TAG       IMAGE ID       CREATED         SIZE
getting-started                    latest    02e506f58015   13 days ago     27.9MB
docker/getting-started             latest    3c156928aeec   10 months ago   24.8MB
tensorflow   latest    4d3d9d563502   23 months ago   3.32GB

3) 도커 이미지로부터 컨테이너 실행

--name 뒤에 원하는 이름을 설정

Ubuntu20.04/Windows PowerShell

> docker run -it --name tf -p 8888:8888 -p 6006:6006 tensorflow /bin/bash
> docker run -it --name pt -p 8889:8889 -p 8097:8097 pytorch /bin/bash

-v (--volumn) :  공유디렉토리

Ubuntu20.04/Windows PowerShell

> docker run -it --volume d:\:/mnt/d pytorch /bin/bash

(결과) root 계정으로 컨테이너 내부 쉘에 접속한 상태

더보기

root@고유번호:/workspace#

4) 컨테이너 끄기

root@고유번호:/workspace# exit

5) 도커 컨테이너 상태 확인 : Status 확인

Ubuntu20.04/Windows PowerShell

> docker ps -a
더보기

PS D:\work\workspace\TensorFlow-master> docker ps -a
CONTAINER ID   IMAGE                              COMMAND                  CREATED              STATUS                      PORTS                NAMES
6d468316db58   tensorflow   "/bin/bash"              About a minute ago   Exited (0) 13 seconds ago                        tf
7b168e4516ac   docker/getting-started             "nginx -g 'daemon of…"   13 days ago          Exited (255) 12 days ago    0.0.0.0:80->80/tcp   gifted_mayer

6) 도커 컨테이너 자유롭게 드나들기

docker run 명령어는 한 번 만 실행하시면 됩니다. 종료된 컨테이너를 다시 실행(docker start 도커이름) 합니다

Ubuntu20.04/Windows PowerShell

> docker start tf
> docker attach tf
root@[고유번호]:/workspace#

컨테이너 터미널에 접속(docker attach 도커이름) 하면 컨테이너 내부 터미널로 이동하게 됩니다.

 

3. Doker 생성

Docker 에서 Image Container 와 함께 가장 중요한 개념입니다.

모든 컨테이너는 이미지를 바탕으로 실행됩니다. 도커에서는 다양한 베이스 이미지와 애플리케이션 이미지를 제공하여 새로운 커스텀 이미지를 만들 수 있게 합니다. 이 커스텀 이미지로 미리 특정 애플리케이션이 실행가능한 프로비저닝된 환경을 구축하고, 언제 어디서나 컨테이너로 실행하는 것이 가능합니다. 

 

도커에서는 다양한 베이스 이미지를 제공하여 베이스 이미지를 기반으로 새로운 커스컴 이미지를 만들 수 있습니다. 

모든 컨테이너는 이미지를 바탕으로 실행되며, 이 때 이미지는 컨테이너가 실행되는 파일 시스템입니다. 도커에서는 다양한 베이스 이미지와 애플리케이션 이미지를 제공할뿐만 아니라, 사용자는 이러한 이미지를 기반으로 해서 새로운 커스텀 이미지를 만들 수 있습니다. 이 커스텀 이미지로 미리 특정 애플리케이션이 실행가능한 프로비저닝된 환경을 구축하고, 언제 어디서나 컨테이너로 실행하는 것이 가능합니다. 

 

 

도커 이미지 빌드는 베이스 이미지를 기반으로 컨테이너를 실행하고 컨테이너 전용 파일 공간(레이어)에 변경사항을 저장해서 이미지를 만들고, 다시 이 이미지로 컨테이너를 만들고… 반복하며 만들어집니다. 레이어는 논리적인 단위로 나누기도 하고, 캐시를 고려해서 나누기도 하기 때문에, FileX와 FileY 둘 중에 어느 쪽이 정답이라고는 할 수 없습니다. 상황에 따라 적절히 구성해야합니다.

 

4. Dockerfile 이용하여 생성