Docker 시작하기 3 (build& Run 알아보기)
🌈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가 나타나게 됩니다.
🟠 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 <이미지 명>:<태그명>
Author And Source
이 문제에 관하여(Docker 시작하기 3 (build& Run 알아보기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@junny8643/Docker-시작하기-3-build-알아보기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)