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.)