Docker 노트: 웹 서 비 스 를 실행 하고 미 러 파일 을 구축 합 니 다.
1) nginx 를 예 로 들 어 웹 서 비 스 를 실행 합 니 다.
docker pull nginx:alpine
이때 우 리 는 알파 인 기반 으로 제 작 된 nginx 미 러 docker run --rm nginx:alpine
가 걸 립 니 다. nginx 가 계속 서 비 스 를 제공 하기 때 문 입 니 다 docker run -d --rm nginx:alpine
이 때 터미널 이후 의 서비스 방식 을 사용 하지 않 고 실 행 됩 니 다 2) docker 서 비 스 를 실행 하고 포트 노출
docker ps
이 nginx 서비스 가 80 포트 를 차지 하여 서 비 스 를 제공 하 는 것 을 볼 수 있 습 니 다 docker kill nginx ID
docker run -d --rm -P nginx:alpine
대문자 P 옵션 docker ps
출력 내용 을 발 견 했 습 니 다. 예 를 들 어 0.0.0.0:32768->80/tcp
물리 기기 의 32768 포트 가 docker 용기 의 80 포트 ip:32768
을 통 해 docker 에 있 는 용 기 를 방문 할 수 있 습 니 다. 우 리 는 -P
옵션 을 사용 하 는 의 미 는 물리 기 에 사용 되 지 않 은 포트 와 docker 용기 에 있 는 포트 를 매 핑 하 는 것 입 니 다 -p
을 사용 할 것 이다. 여기 p 는 소문 자 이 고 우 리 는 스스로 포트 docker run -d --rm -p 8080:80 nginx:alpine
, 우 리 는 물리 기의 8080 포트 를 용기 의 80 포트 에 연결 합 니 다. 그러면 착란 이 발생 하지 않 을 것 입 니 다 -q
방식 을 조회 합 니 다. 예 를 들 어 $docker ps -q
, 실행 용기 의 ID 목록 을 출력 합 니 다 docker kill $(docker ps -q)
를 통 해 모든 운행 중인 용 기 를 모두 닫 을 수 있 습 니 다 docker build
를 사용 하여 docker 미 러 를 구축 합 니 다 FROM
, RUN
, CMD
, LABEL
, COPY
WORKDIR
: 지정 한 기초 미 러 FROM
: 구축 과정 에서 수행 해 야 할 명령 RUN
: 용기 시작 시 실행 해 야 할 명령 CMD
: 태그, 미 러 에 확 장 된 정 보 를 추가 하 는 데 사 용 됩 니 다. 예 를 들 어 버 전 정보, 관리자 정보 등 LABEL
: 파일 을 거울 에 복사 하 는 데 사용 합 니 다 COPY
: 명령 을 설정 하 는 작업 디 렉 터 리 WORKDIR
# ubuntu,
# FROM ubuntu:16.04
FROM alpine
LABEL version="1.0"
LABEL description="my image"
# ubuntu
# RUN apt update && apt -y install python3
# alpine , , && ,
RUN apk update && apk add python3
# code ,.
COPY . /code
#
WORKDIR /code
#
CMD ["python3", "app.py"]
vi Dockerfile
print("Hello Python")
app.py
docker build -t myapp .
는 -t
의 줄 임 말 --tag
는 현재 디 렉 터 리 이 고 dockerfile 은 현재 디 렉 터 리 .
를 통 해 확인 할 수 있 습 니 다. 하나의 미 러 docker images
myapp
, 출력 docker run --rm myapp
Hello Python
docker run --rm myapp echo hi
는 dockerfile 에 있 는 CMD 의 내용 과 같 으 며 CMD 의 명령 echo hi
이 아니 라 hi
Hello Python
, 미 러 에서 더 많은 상세 정 보 를 볼 수 있 습 니 다 "Labels" : {
"description" : "my image",
"version": "1.0"
},
"Cmd" : [
"python3",
"app.py"
],
"WorkingDir": "/code",
# ... #
docker inspect myapp:latest
을 사용 하 는 것 이 좋 습 니 다. 그렇지 않 으 면 Dockerfile
때 docker build
를 사용 하여 파일 이름 이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 예외 스택 궤적(Stack Trace) 상세 정보 및 인스턴스 코드이상을 포착할 때는 종종 약간의 처리가 필요하다.비교적 간단하고 직접적인 방법은 이상 스택 궤적 Stack Trace를 인쇄하는 것이다.창고 궤적을 말하자면 아마도 많은 사람들이 나와 마찬가지로 첫 번째 반응은 pr...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.