도커 이미지 만들기/실행하기

악음·2022년 3월 7일
0

docker 기본

목록 보기
6/8
post-thumbnail

남들꺼 받아쓰지말고 내만내사 해보자 ㅋ

일단 이미지를 만드는 방법은 2가지가 있다.

  1. 사용중인 컨테이너에서 commit을 사용하면 해당 컨테이너가 이미지가 된다. => commit
  2. docker file을 생성하여 사용한다. => build

commit 을 사용하여 이미지 생성

1. 일단 이미지 하나를 받아보자

혹은 docker run --name 이미지이름 -it ubuntu:20.04 을 사용하면 이미지를 받음과 동시에 컨테이너 이름을 바꿔서 생성가능

docker pull ubuntu

이미지를 실행시킨다

docker run -it --name test ubuntu 

여기서 다시

docker commit [복사할 컨테이너 name/id][새로만들 이미지 이름]

docker commit test test2

그리고 images에서 새로만든 이미지가 있는지 확인해보자

build으로 만들기(dockerfile)

  1. root directory에서 dockerfile을 생성한다.
  2. 도커 파일은 대략적으로 다음과같이 작성한다.
    • FROM ubuntu:20.04
    • FROM은 base 이미지를 선택하는 부분
  3. docker build -t [image 이름][dockerfile이 위치한 path]
    • docker build -t ubuntu_base .

위에 과정을 거치면 다음과같이 이미지가 생성된다.

새로만든 이미지를 컨테이너로 실행

  1. 컨테이너 실행docker run --name testServer -it -d ubuntu_base

컨테이너안에서 서버를 만들어보자

  1. 컨테이너 접근 docker exec -it testServer /bin/sh
  2. 파이선 설치 : apt -v => apt update -> apt install python3
  3. 디렉토리 생성 : mkdir -p /var/www/html
  4. cd var/www/html
  5. 파일생성 : echo "hello, <strong>DOCKER</strong>
  6. 서버시작 : python3 -m http.server 으로 서버시작
  7. 서버 확인

이제 위에 과정을 도커 파일화 시켜보자

위에 과정처럼 일일히 커맨드를 작성하는건 귀찮은 일이다.

# base image을 선택한다(주로 운영체제)
FROM ubuntu:20.04
# -y 는 파이선이 설치될떄 질문이 들어온다 그때 답번을 y으로 해주어야한다.(안그러면 도커는 멈춘다)
RUN apt update && apt install -y python3
# 작업할 디랙토리로 이동 (없으면 만들어서 이동한다)
WORKDIR /var/www/html

# RUN echo "hello <strong>DOCKER</strong>" > index.html 으로 만들어도되지만 도커파일이 생성된 루트에서 파일을 카피할수도있다.
# copy의 인자는 "카피할 파일경로","붙여넣을경로"] 붙여넣을 경로는
# 위에 workdir의 기준으로 간다.
COPY ["index.html"."."]
CMD ["python3","-u","-m","http.server"]

# CMD와 RUN의 차이는 RUN은 도커이미지를 만들떄 사용되고 CMD는
# 컨테이너를 실행시켰을떄 사용된다.

위에파일을 작성한뒤

docker build -t test_server .
docker run -d -p 8888:8000 --name testServer test_server

그런뒤 localholst:8888으로 접근하면

서버가 뜸

정리

commit 는 컨테이너에 접근한뒤 무언가 작업을하고 이를 image화시킨다 => backup의 느낌

build 는 컨테이너를 새로 만드는 느낌이다

물론 최신화할때 도커파일을 업데이트해서 컨테이너를 생성할수도있다.

profile
RN/react.js개발자이며 배운것들을 제가 보기위해서 정리하기 때문에 비속어 오타가 있을수있습니다.

0개의 댓글