Докер-тренинг (6 части серии)
Давайте повторимся, где мы до сих пор. Мы прошли некоторые основы Dockerfile. Поговорил немного о некоторых основных командах, которые пригодятся, когда мы продолжим. Написал DockerFile, чтобы построить наш маленький Golang API. Наконец мы создали изображение и обсудили теги.
Docker Run.
Так что давайте развертываем это изображение и немного играйте с ним. Откройте терминал и введите эту команду.
$ docker run --publish 127.0.0.1:8080:10000/tcp helloFromIntegratnIO
Давайте выйдем через эту команду 1 кусок за раз.
Docker Run.
: Здесь мы говорим Docker CLI, который мы хотим Беги изображение в качестве контейнера.
-публиковать
: Опубликовать Будет связывать локальный порт в порт в контейнере.
127.0.0.1
: Удерживает нас только на месте localhost, поэтому наш контейнер не будет доступен за пределами нашей машины.
: 8080
: Является ли локальный порт на нашем хозяине, что мы обязательно для : 10000
: это порт внутри контейнера, который мы хотим 8080
осимлять.
/TCP
: Является ли протокол, который мы хотим использовать. Вы также можете использовать удп
или SCTP
если нужно. Вы можете узнать больше об этом в Гид пользователя
Если вы еще не попали в Engle. Идите вперед и удалите его сейчас и отставьте эту команду Docker Run.
Вы должны увидеть следующий вывод.
$ 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!!!
Теперь мы готовим. Но Что еще мы можем сделать с этим маленьким контейнером.
Давайте изменим ответ от запроса скручиваемости. Мы можем сделать это, передавая переменную среды в контейнер. Мы можем сделать это одним из двух способов. Мы можем редактировать файл Docker. Добавьте Env Инструкция. Скажи это, мы хотим СООБЩЕНИЕ
равен что-то другое. Восстановить наш образ. Затем наконец запустите его снова. Это отличный способ установления значений по умолчанию для переменных среды. Или мы можем добавить параметр —env со значением для нашего Docker Run
Команда и измените его на лету. Переменные среды прошли во время Docker Run
Команда всегда будет превосходить то, что в вашем докерене. Если вы не выступили, контейнер уже ударил 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 команда пока наш контейнер работает. Docker Exec позволяет нам запустить команды внутри нашего контейнера, пока его уже работает. Это может быть очень удобно для отладки контейнера. Но сначала мы должны выяснить, какой наш контейнер назван.
Давайте посмотрим на наш бегущий контейнер с командой, которую мы покрыты урок 1:
$ docker ps
Вы получите выход, похожий на это, но ваш Имена
поле не будет таким же.
$ 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 #
Этот путь выглядит знакомым? Это тот же путь, который мы устанавливаем для Workdir
в Dockerfile. Мы находимся в оболочке контейнера. Тип Выход
и ударил Введите
покинуть контейнер.
Давайте посмотрим на команду Real быстро.
Docker Exec
это базовая команда. Это объявляет, что мы хотим выполнить что-то против бегового контейнера. --interactive
будет держать stdin открыть, даже если мы не прикреплены. --Тти
дает нам псевдотворный. Hungry_BOR
это название моего бегового контейнера. Твои будут отличаться. /bin/штерива
Это команда, которую мы хотим работать в контейнере. Одно предостережение к этому. Что бы вы ни беги против контейнера, на самом деле должны быть частью контейнера. В попытке обрезать контейнеры с точки зрения множества контейнеров, которые не имеют команды оболочки.
Так что теперь мы провели наш контейнер. Мы работаем в наш контейнер, чтобы мы могли его исследовать. Это это за это время. Подготовьтесь в следующий раз, когда у нас будет краткое разведка в контекст сборки.
Докер-тренинг (6 части серии)
Оригинал: «https://dev.to/jamesatintegratnio/docker-training-3-my-first-docker-deployment-4m92»