Docker 시작하기 3 (build& Run 알아보기)

3351 단어 dockerdocker

🌈build & run ❔

1편에 나왔던 build & run 에 상세하게 알아보도록 합니다

docker는 dockerfile작성 -> build -> run 으로 이미지와컨테이너를 생성&실행합니다.
그중 자주 사용하는 옵션을 다뤄볼 예정입니다


💨예제로 사용한 dockerfile

FROM ubuntu:20.04

RUN echo "SUCCESS"

💬 build ❔

docker build는 dockerfile로 부터 이미지를 생성합니다. (이미지확인 : docker images)

🍑 tag : docker container에 이미지 명 & tag를 지정해줍니다.

태그를 지정해주지 않으면, latest가 됩니다.

🟠 docker build -t [이미지 명]:<태그> [dockerfile 경로]
🟡 docker build --tag [이미지 명]:<태그> [dockerfile 경로]

🍎 경로지정 : dockerfile이 정의되어있는 파일을 지정합니다

🟠 docker build -f [지정할 파일명][파일 디렉터리 경로]

A. 현재 위치에 있는 dockerfile 명을 testfile로 변경합니다

🥑 환경 변수 : dockerfile에 필요한 환경변수를 설정 해줍니다

🟠 docker build --build-arg [환경변수 명]=[환경변수 값]

A. dockerfile 설정

FROM ubuntu:20.04
ARG arg1
ARG arg2

RUN echo ${arg1}
RUN echo ${arg2}

B. # docker build -t junny-art-docker:latest --build-arg arg1=안녕 --build-arg arg2=하세요 ./
💥 항상 마지막에 ./처럼 dockerfile의 경로를 지정해 주어야 합니다

💬 run ❔

docker run은 생성된 이미지로부터 컨테이너를 실행합니다.
🟠 docker run [이미지 명]:[태그명]

docker stop/rm은 컨테이너를 종료/삭제합니다.
🟡 docker stop/rm [컨테이너 명] 또는 [컨테이너 ID]
(컨테이너 확인 : docker ps )

🌞 이미지를 실행하기에 앞서 nginx이미지를 받아오도록 합니다
docker pull nginx:latest

🥑 Background : 컨테이너가 detached 모드에서 실행되어 실행된 container의 아이디만 출력합니다

🟠 docker run [이미지 명]:[태그명] -d

🍋 SHELL : 컨테이너를 실행후 터미널의 입력을 계속하기 위해 사용합니다

🟠 docker run -it [이미지 명]:<태그명> [shell 선택]
선택된 container의 ID가 나타나게 됩니다.

> 🍒 name : 컨테이너의 이름을 지어주기 위해 사용합니다

🟠 docker run --name [컨테이너 이름][이미지 명]:<태그명>

> 🥕 port : 컨테이너의 포트포워딩 해주기 위해 사용합니다.

🟠 docker run -p [외부 포트]:[내부 포트] <이미지 명>:<태그명>

포트 포워딩 이란 ❔
외부에서 접속한 [333] 포트를 내부의 [80]포트로 지정해주는 것입니다

⛄ 80번 포트에 응답하는 nginx가 333에 응답하는걸 볼수 있습니다

🥥 volume : 컨테이너의 폴더를 호스트에 마운트 합니다.

🟠 docker run -v [로컬서버의 폴더 경로]:[컨테이너 내부 폴더 경로] <이미지 명>:<태그명>

마운트 란 ❔ 컨테이너에 접속하지 않더라도 컨테이너내부의 파일을 볼 수 있으며, 별다른 지정을 하지않으면 컨테이너가 종료되어도 데이터가 보존됩니다.

🍉 workdir : 컨테이너의 기본 실행 폴더를 지정합니다

🟠 docker run -w [컨테이너 내부 폴더 경로] <이미지 명>:<태그명>
기본 작업 디렉터리가 되며, shell 및 작업 실행의 경로가 됩니다

🍅 remove : 컨테이너가 종료될때 자동으로 컨테이너를 삭제합니다.

🟠 docker run --rm <이미지 명>:<태그명>

좋은 웹페이지 즐겨찾기