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로 접속하면 정상적으로 실행된 것을 볼 수 있다.
📄 참고자료
'Programming > Docker' 카테고리의 다른 글
Docker 이미지 공유하기 (1) | 2024.10.01 |
---|---|
Docker 설치 및 사용법 (1) | 2024.09.20 |
Docker란? (0) | 2024.09.04 |
딥러닝 개발용 Docker 이미지 생성 (0) | 2023.12.29 |