Docker 교육 3 - 나의 첫 번째 Docker 배포
도커 실행
이제 이 이미지를 배포하고 약간 사용해 보겠습니다. 터미널을 열고 다음 명령을 입력하십시오.
$ docker run --publish 127.0.0.1:8080:10000/tcp helloFromIntegratnIO
이 명령을 한 번에 하나씩 살펴보겠습니다.
docker run : 여기에서 이미지를 컨테이너로 사용run한다고 Docker cli에 알립니다.-publish : Publish은 로컬 포트를 컨테이너의 포트에 바인딩합니다.127.0.0.1 : localhost만 계속 노출하므로 컨테이너는 시스템 외부에서 사용할 수 없습니다.:8080 : 바인딩할 호스트 시스템의 로컬 포트입니다.:10000 : 8080가 가장하려는 컨테이너 내부의 포트입니다./tcp : 사용하려는 프로토콜입니다. 필요한 경우 udp 또는 sctp를 사용할 수도 있습니다. 자세한 내용은 User Guide에서 확인할 수 있습니다.아직 엔터를 누르지 않았다면. 계속해서 지금 치고 Docker 실행 명령을 시작하십시오.
다음 출력이 표시되어야 합니다.
$ docker run -p 127.0.0.1:8080:10000/tcp helloFromIntegratnIO
Starting Web Server
Preparing to handle requests
Ready for requests
작동하는지 봅시다.
두 번째 터미널을 열고 다음을 입력하십시오.
$ curl localhost:8080
산출:
$ curl localhost:8080
Hello from Integratn.IO!!!
이제 우리는 요리하고 있습니다. 그러나이 작은 컨테이너로 무엇을 할 수 있습니까?
curl 요청의 응답을 변경해 보겠습니다. 환경 변수를 컨테이너에 전달하여 이를 수행할 수 있습니다. 우리는 이것을 두 가지 방법 중 하나로 할 수 있습니다. 도커 파일을 편집할 수 있습니다. ENV 명령어를 추가합니다.
MESSAGE가 다른 것과 같기를 원한다고 말하십시오. 이미지를 재구성하십시오. 그런 다음 마지막으로 다시 실행하십시오. 이는 환경 변수의 기본값을 설정하는 훌륭한 방법입니다. 또는 값이 있는 매개변수--env를 docker run 명령에 추가하고 즉시 변경할 수 있습니다. docker run 명령 중에 전달된 환경 변수는 항상 Dockerfile에 있는 항목보다 우선합니다. 컨테이너를 종료하지 않은 경우 터미널에서 컨테이너를 종료하려면 이미 ctrl +c를 누르십시오.다음 명령을 실행해 보겠습니다.
docker run --env MESSAGE="Hello from outerspace" -p 127.0.0.1:8080:10000/tcp helloFromIntegratnIO
이제 다른 터미널에서 해당 curl 문을 다시 사용할 수 있습니다.
$ curl localhost:8080
Hello from outerspace
저것 봐. 환경 변수로 응답을 변경했습니다.
도커 임원
컨테이너가 실행되는 동안 docker exec 명령을 살펴보겠습니다. Docker exec를 사용하면 이미 실행 중인 컨테이너 내에서 명령을 실행할 수 있습니다. 이는 컨테이너 디버깅에 매우 유용할 수 있습니다. 그러나 먼저 컨테이너의 이름을 알아내야 합니다.
1강에서 다룬 명령으로 실행 중인 컨테이너를 살펴보겠습니다.
$ docker ps
이와 유사한 출력이 표시되지만
NAMES 필드는 동일하지 않습니다.$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
56290825f889 helloFromIntegratnIO "/go/bin/hello" 2 minutes ago Up 2 minutes 127.0.0.1:8080->10000/tcp hungry_bohr
이제 실행 중인 컨테이너를 찾았습니다. 컨테이너 이름을 사용하고 셸을 실행하여 컨테이너에 들어가도록 하겠습니다.
docker exec --interactive --tty hungry_bohr /bin/sh
산출:
$ docker exec --interactive --tty hungry_bohr /bin/sh
/go/src/integratnio/go-rest-api #
그 길이 낯익지 않나요? Dockerfile에서
WORKDIR에 대해 설정한 것과 동일한 경로입니다. 우리는 컨테이너의 껍질 안에 있습니다. 컨테이너에서 나가려면 exit를 입력하고 enter를 누르십시오.명령을 빠르게 살펴보겠습니다.
docker exec는 기본 명령입니다. 이것은 실행 중인 컨테이너에 대해 무언가를 실행하고 싶다고 선언하는 것입니다.--interactive는 연결되지 않은 경우에도 STDIN을 열린 상태로 유지합니다.--tty는 의사 tty를 제공합니다.hungry_bohr는 실행 중인 컨테이너의 이름입니다. 당신은 다를 것입니다./bin/sh 컨테이너에서 실행하려는 명령입니다. 이에 대한 한 가지 주의사항. 컨테이너에 대해 실행하는 것은 무엇이든 실제로 컨테이너의 일부여야 합니다. 컨테이너를 줄이기 위한 노력으로 많은 컨테이너 이미지에는 사용 가능한 셸 명령이 없습니다.이제 컨테이너를 실행했습니다. 컨테이너를 탐색할 수 있도록 컨테이너를 실행했습니다. 이번에는 그게 다야. 빌드 컨텍스트에 대한 간략한 탐색이 있는 다음 시간을 준비하십시오.
Reference
이 문제에 관하여(Docker 교육 3 - 나의 첫 번째 Docker 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jamesatintegratnio/docker-training-3-my-first-docker-deployment-4m92텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)