Docker 명령어가 익숙하지 않다면

2024.09.20 - [Programming/Docker] - Docker 설치 및 사용법

 

Docker 설치 및 사용법

이 글에서는 Docker 명령어를 실습해보며 Docker에 대한 이해를 깊이 있게 넓혀간다.Docker가 무엇인지 아직 모른다면 2024.09.04 - [Programming/Docker] - Docker란? Docker란?최근에 MLOps를 공부하면서 Kubernetes

dream2reality.tistory.com

 

 

 

Docker 이미지를 만드는 방법에는 두 가지가 있다. 첫 번째는 실행 중인 컨테이너를 commit 하여 image로 만드는 것이고 두 번째는 Dockerfile을 build해 image를 만드는 것이다.

 

🛰️ 1. Commit을 통한 Docker 이미지 만들기

Docker에서는 `commit` 명령어는 사용 중인 컨테이너를 이미지로 만들 수 있는데 이를 활용해 다른 사람이 Docker hub에 올려놓은 Image를 변경해 새로운 이미지를 생성할 수 있다.

 

 

1. Docker 이미지 다운

`docker image pull` 명령어를 통해 docker 이미지 다운로드. ubuntu docker 이미지를 가져온다.

docker pull ubuntu

 

2. Docker 이미지 실행

다운로드한 ubuntu docker 이미지를 실행한다. `-it`와 `bash` 를 통해 터미널에서 명령어를 실행할 수 있도록 한다.

docker run -it --name my-ubuntu ubuntu bash

 

 

3. Git 설치

실행 중인 컨테이너에 git을 설치해 준다.

apt update; apt install git

 

4. Docker 이미지 commit

실행 중인 container를 빠져나와서 (Ctrl + p + q) 해당 container를 commit 해준다.

docker commit my-ubuntu jinwoo:ubuntu-git

 

commit이 정상적으로 됐다면 docker 이미지가 생성된 것을 볼 수 있다.

> docker images
REPOSITORY                        TAG          IMAGE ID       CREATED         SIZE
jw                                ubuntu-git   d62c3257fbf9   4 seconds ago   208MB

 

5. Commit 된 이미지 실행

이렇게 commit 된 이미지를 다시 실행할 수 있다.

docker run -it --name python jw:ubuntu-git bash

 

실행된 container에 python, node.js 등을 설치하고 commit 하면서 docker image를 생성할 수 있다.

apt update; DEBIAN_FRONTEND=noninteractive apt install -y python3

 

 

⚒️ 2. Build를 통한 Docker 이미지 만들기

Docker에서는 Dockerfile을 `build` 하여 새로운 Docker Image를 만들 수가 있다. 위에서 사용했던 명령어들을 비교하며 Dockerfile 작성법을 익혀본다.

python으로 간단한 웹서버를 띄울 때 기존에는 아래와 같이 명령어를 작성하였다.

 

> docker pull ubuntu:20.04
> docker run -it -p 8888:8000 --name web-server ubuntu:20.04 bash
root@gasmkgd:/# apt update; apt install -y python3
root@gasmkgd:/# mkdir -p /var/www/html
root@gasmkgd:/# cd /var/www/html
root@gasmkgd:/# echo "hello, docker" > index.html
root@gasmkgd:/# python3 -m http.server

 

이후에 http://127.0.0.01:8888로 접속하면 “hello, docker”가 띄워져 있는 화면을 볼 수 있다.

 

이를 Dockerfile로 작성하면 다음과 같다.

FROM ubuntu:20.04 # 베이스 이미지 설정
RUN apt update && apt install -y python3 # python3 설치
WORKDIR /var/www/html # 폴더 생성 및 이동
COPY ["index.html", "."] # 파일 복사 ["호스트 directory", "컨테이너 directory"]
CMD ["python3", "-u", "-m", "http.server"] # docker 이미지 run 할 때 실행할 명령어

 

Dockerfile을 작성한 후에 build 해준다. `docker build -t [이미지 이름] [Dockerfile 경로]`

docker build -t web-server-build .

 

문제없이 빌드가 되었다면 `docker images` 명령어를 통해 확인해 볼 수가 있다.

> docker images
REPOSITORY                        TAG       IMAGE ID       CREATED         SIZE
web-server-build                  latest    605dc0ac92b5   4 seconds ago   165MB

 

이후에 해당 이미지를 Run 하면 파이썬 웹서버가 실행된다.

docker run -p 8888:8000 --name web-server web-server-build

 

http://127.0.0.01:8888로 접속하면 정상적으로 실행된 것을 볼 수 있다.

 

 

📄 참고자료

https://youtu.be/RMNOQXs-f68?si=gU5VagG4gqSl-bGp

https://www.youtube.com/watch?v=0kQC19w0gTI

'Programming > Docker' 카테고리의 다른 글

Docker 이미지 공유하기  (1) 2024.10.01
Docker 설치 및 사용법  (1) 2024.09.20
Docker란?  (0) 2024.09.04
딥러닝 개발용 Docker 이미지 생성  (0) 2023.12.29