Рубрики
Uncategorized

Как использовать команды Docker

В этом посту мы узнаем, как использовать команды Docker. Мы сделаем веб-приложение внутри докера … Tagged с Docker, учебником, DevOps, начинающими.

В этом посту мы узнаем, как использовать команды Docker. Мы сделаем веб-приложение внутри контейнера Docker и включаем его в документ докера. Мы также узнаем, как загрузить его на Docker Hub Отказ

Вы можете найти португальскую версию этого поста здесь.

[Пререквизит]

  1. Как установить Docker
  2. Докерный сайт , Учебная программа
  3. Как развернуть контейнер с Docker , Docker Lifecycle

Во-первых, вы должны установить Docker, если у вас его еще нет. Тип $ Docker На вашей машине, и вам будет показано, как приступить к установке. Или просто поиск, как установить его в вашем браузере.

Этот пост является резюме Докерный сайт , Учетная программа Docker и Т. Д. Я надеюсь, что вы прочитали их первым, но вам не нужно проводить с ними много времени. Мы узнаем, как развернуть веб-приложение и микросервисы на AWS с другими Steadylearner Blog посты.

Оглавление

  1. Подтвердите установку с nginx
  2. Настройте свою среду разработки с Docker
  3. Как переместить свои локальные файлы и папки в контейнеры Docker
  4. Как использовать веб-каркас с контейнерами Docker
  5. Как изменить сетевые порты Docker Images
  6. Докерские изображения и контейнеры
  7. Как загружать свои изображения Docker в Docker Hub
  8. Вывод

1. Подтвердите установку с nginx

Я надеюсь, что вы можете установить Docker. Прежде чем мы узнаем, как работает каждая команда Docker, давайте тестируем, могут ли они показывать некоторые результаты на вашем компьютере.

Используйте их в вашем CLI.

$docker search nginx
$docker pull nginx
$docker run --name nginx-webserver -p 80:80 nginx

Тогда доступа к localhost Отказ Это будет показано в вашем браузере:

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

Поймите, что вам нужно всего несколько команд, чтобы использовать Docker. Вы также можете запустить контейнер Docker с определенным именем и выполнять команды Bash с ними.

$docker run --name nginx-webserver -p 80:80 -d nginx
$docker exec -it CONTAINER_ID bash

2. Настройте свою среду разработки с Docker

В этом разделе мы узнаем, как настроить изображение Docker по умолчанию с Ubuntu. Можно повторно использовать это изображение позже. Если вы используете другую ОС, пожалуйста, используйте это вместо этого и обратитесь к этой части.

Начните с тянуть Команды для загрузки официального изображения Ubuntu из Docker Hub Отказ Если Docker Hub это что-то новое для вас, вы можете сравнить его с GitHub из-за его репозиториев.

$docker pull ubuntu

Теперь сделайте контейнер в своей машине. Чтобы загрузить минимальные программы, используйте команды SH или Bash в этом с этим:

$docker run -it ubuntu sh

Начните с установки Curl Для скачивания других программ.

$apt-get update
$apt-get install curl
$curl https://www.steadylearner.com

Если вы выходите из контейнера, перезапустите его с этим:

$docker exec -it CONTAINER_ID bash

Вы можете найти Container_id с Docker PS-A Отказ Это команда, которую вы будете использовать часто, и она покажет вам некоторые полезные метаданные контейнеров Docker.

Мы сделаем простой узел «Hello, World» пример приложения веб-приложения в этом посте. Давайте начнем с настройки среды разработки узла. Выполните следующие действия, если вы хотите использовать тот же проект, что и этот пост.

Кроме того, вы можете использовать $ Docker Run-steadylearner/Ubuntu_node вместо.

Вы должны быть внутри вашего контейнера Docker, чтобы использовать их.

Узел, NPM, пряжа

curl -sL https://deb.nodesource.com/setup_12.x | bash

Это будет отображено:

## Run `sudo apt-get install -y nodejs` to install Node.js 12.x and npm
## You may also need development tools to build native addons:
    sudo apt-get install gcc g++ make
## To install the Yarn package manager, run:
    curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
    echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
    sudo apt-get update && sudo apt-get install yarn

Вы должны использовать команды без Sudo.

apt-get install gcc g++ make
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

apt-get update && apt-get install yarn

Следуйте за командами и установите их все.

Тестовый узел Работа с этим:

$node
$console.log("Hello from www.steadylearner.com");

Погибший

Используйте эту команду с помощью asassume-yes или -y, чтобы пропустить соответствующие вопросы установки.

apt install --assume-yes vim

Vim Text Editor будет установлен. Теперь используйте эту команду для его использования:

$vim hello.js

Отредактируйте файл hello.js с этим и : wq Сохранить и выйти из VIM.

// hello.js
console.log("Hello from www.steadylearner.com");

Используйте эту команду, чтобы убедиться, что узел установлен правильно:

$node hello.js
// Hello from www.steadylearner.com

Портить

$apt-get --assume-yes git-core

Это будет устанавливать Git и проверить, что он установлен и его версия:

$git --version

Затем получите имя пользователя GitHub и электронная почта с местного компьютера:

$git config --get user.name
$git config --get user.email

Используйте их в контейнере Docker, чтобы управлять Git внутри:

$git config --global user.name yourname
$git config --global user.name youremail

Используйте одну и ту же команду (- — get), прежде чем проверять их в вашем контейнере Docker.

Тестируйте работу Git Clone, чтобы загрузить файлы из ваших предыдущих репозиториев GitHUB. Например, клон Steadylearner/Docker-Примеры Репозиторий с этим:

$git clone https://github.com/steadylearner/docker-examples.git

Я надеюсь, что вы можете установить все, что, по вашему мнению, необходимо в вашем контейнере Docker.

Вы можете пропустить эту форму «эту пряжу», а также использовать команды NPM по умолчанию. В противном случае прочитайте Это пост Чтобы получить больше информации.

Убедитесь, что Пряжа Версия сначала в этом.

$yarn -v

Это покажет версию вашей пряжи.

Далее используйте эти команды для использования проекта узла:

$cd /home
$mkdir node && cd node
$yarn init
$yarn add chalk

Проверьте работу NPM или пряжи с модулями NPM с этими:

// Start with $node in your console and use each command.

const chalk = require("chalk");
const blue = chalk.blue;
const hello = blue("Hello from www.steadylearner.com");
console.log(hello);

Это должно было показано Привет от www.steadylearner.com сообщение в вашей консоли.

Мы проверили, что пакеты NPM работают в вашем контейнере Docker с этим.

Если вы хотите, сделайте псевдоним для этого каталога также похоже на это.

$vim ~/.bashrc

Введите это и: wq для сохранения и выйти.

alias work="cd /home/node"

Использовать $ Source ~/.bashrc И вы можете использовать свой узел проекта с $ Работа когда угодно. Кроме того, вы можете определить Workdir позже с Dockerfile или docker-compsose.yml для той же цели.

В вашей машине будет много контейнеров докеров. Используйте эти команды для удаления ненужных:

1. Список и удаление предыдущих контейнеров докеров.

$docker ps -a

Список экземпляров, которые вы работали раньше, будут показаны.

2. Удалить то, что вам не нужно.

$docker stop containerid
$docker rm containerid

или

$docker rm containerid -f

3. Как переместить свои локальные файлы и папки в контейнеры Docker

Мы можем использовать команды GIT для загрузки файлов из GitHub в ваши контейнеры. Более того, вы можете использовать команды Docker, чтобы переместить локальные файлы и папки в ваши контейнеры Docker и наоборот.

Обратитесь к этим примерам или Docker CP —help Отказ

1. Файлы

$docker cp from_localhost.txt containerid:/from_localhost.txt
$docker cp containerid:/from_docker from_docker.txt

2. Папки

$docker cp from_localhost containerid:/from_localhost
$docker cp containerid:/from_localhost from_localhost

4. Как использовать веб-каркасы с контейнерами Docker

Мы установили узел рецензионные программы для этой части. Если вы используете веб-каркасы с других языков, пожалуйста, обратитесь к рабочему процессу этого раздела.

выражать

Установите зависимости, которые мы будем использовать внутри контейнера Docker с этим:

$yarn add express chalk

Далее мы построим «Привет, мир!» Приложение с кодом JavaScript ниже.

// server.js
const express = require('express')
const chalk = require("chalk");

const app = express()
const port = 3000

app.get('/', (req, res) => res.send('Hello, World!'))

const blue = chalk.blue
const target = blue(`http://localhost:${port}`)

app.listen(port, () => console.log(`Express Server ready at ${target}`))

Тогда, $ Node Server.js Понадобится это сообщение:

[Express] Server ready at http://localhost:3000

Но $ Curl http://localhost: 3000 Или посещение его в вашем браузере пока не будет работать.

Каждый контейнер имеет свой собственный IP в сети. Мы должны осмотреть контейнер Docker с $ Docker Inspect Container_id> Inspect.txt извлечь информацию от нее.

Вы можете найти свой локальный IP в конце Inspect.txt, и он будет похоже на 172.17.0.2 Отказ Сохраните свое время, делая Getip.js и $ Узел Getip.js Отказ

const fs = require('fs')

const filename = "inspect.txt";

fs.readFile(filename, 'utf8', function(err, data) {
  if (err) throw err;

  // console.log(`Read ${filename}`);
  const dataObject = JSON.parse(data);

  // console.log(payload);
  // console.log(typeof payload);

  const ip = dataObject[0].NetworkSettings.IPAddress;
  console.log(`IP is ${ip}`);
});

Вы можете использовать Docker Inspect Command также.

Проверьте IP с $ CURL http://172.17.0.2:3000/ Или проверьте его с вашим браузером.

Если вы можете увидеть это сообщение, посмотрите, что вы действительно можете разработать веб-приложения на вашем локальном компьютере с Docker.

Hello, World!

5. Как изменить сетевые порты Docker Images

В предыдущей части мы должны были найти сетевой порт для веб-структуры для его посещения. В качестве альтернативы, Вы можете начать с вашего пользовательского порта Отказ

$docker run -it --name ubuntu_node -p 80:80 ubuntu

Вы также можете использовать его с -d к Сделайте контейнер бежать в фоновом режиме. .

docker run -d --name ubuntu_node -p 80:80 ubuntu:latest

Обратитесь к этому, чтобы узнать, что здесь происходит лучше.

«По умолчанию порт на хосте (контейнере) сопоставлен на 0.0.0.0, что означает все IP-адреса. Вы можете указать конкретный IP при определении отображения порта, например, -P 127.0.0.1:80:80 ‘

6. Докерские изображения и контейнеры

Вы можете запутаться в разнице между контейнером и изображением Docker. Просто подумайте о образах как о классах и контейнерах как экземпляры, которые вы используете на вашем компьютере. Ты сможешь:

  1. Потяните или запустите (потяните и запускайте) изображения и сделают контейнеры Docker от них на вашей местной машине.

  2. Редактировать файлы в контейнерах с $ Docker Exec -it Contactername Bash Отказ

  3. Сделайте изображения из контейнеров с $ Docker Commit Consitionername YourDockerhub/Image && Docker Push Account/Image Отказ

Не стесняйтесь начинать с DockerFile вместо 1 и 2 и зафиксировать свои изображения докера. Мы узнаем это в другом Steadylearner Blog с Эластичный Beanstalk Отказ

7. Как загружать свои изображения Docker в Docker Hub

Теперь мы собираемся научиться Сначала создайте репозиторий на Docker Hub С примером мы сделали.

Сначала войдите в систему с этой командой:

$docker login

Тогда используйте $ Docker Commitse Отказ

$docker commit ubuntu_node

Затем проверьте изображение, сделанное из контейнера Ubuntu_node, используя это:

$docker images

Дайте ему тег (имя).

$docker tag imageid steadylearner/ubuntu_node

Вы можете выполнить эту команду вместо этого:

$docker commit ubuntu_node steadylearner/ubuntu_node

Теперь вы можете подтолкнуть свое изображение Docker в Docker Hub с этим:

$docker push steadylearner/ubuntu_node // yourusername/image

Дождитесь завершения процесса загрузки и использовать это:

$docker run -it steadylearner/ubuntu_node bash

Если вы хотите отредактировать его, просто следуйте тем же шагам, которые мы использовали ранее.

Перезапустите контейнеры этим, если они останавливаются:

$docker restart containerid
$docker exec -it containerid bash

Чтобы удалить контейнер, сделанный из STEADYLEAREARNER/UBUNTU_NODE Image или вашего, вы можете использовать это:

$docker stop ubuntu_node
$docker container rm ubuntu_node
$docker image rm ubuntu

Если вы хотите переименовать контейнер, используйте это:

$docker container rename randomname ubuntu_node

Используйте свой вместо Ubuntu_node или Steadylearner/Ubuntu_node.

Если вы измените проект, используйте команды, похожие на это:

$docker commit ubuntu_node steadylearner/ubuntu_node

Или с помощью сообщения.

$docker commit --message "Test message and will be similar to github -m option" ubuntu_node steadylearner/ubuntu_node

Теперь давайте нажимаем изображение, сделанное из него в докерский центр:

$docker push steadylearner/ubuntu_node

и использовать это:

$docker run -it steadylearner/ubuntu_node bash

Или это, чтобы проверить результат:

$docker history steadylearner/ubuntu_node

8. Вывод

Я надеюсь, что вы сделали все это работать. Мы узнали, как установить Docker и заставить его работать с NGINX, как сделать контейнер докеров и изображение и загрузить их в Docker Hub Отказ

Есть много вещей, чтобы учиться. Но с примерами все будет легче. На более поздних постах на Steadylearner Blog Мы узнаем, как развернуть веб-приложение с Эластичный Beanstalk от AWS и dockerfile. Мы также узнаем, как развернуть микросервисы с помощью ECS , Облачность , Docker-Compose.yml и Т. Д. Итак, следите за обновлениями!

Оставайтесь на вершине последнего контента Steadylearner: следуйте за мной на Twitter Отказ

Если вам нужно нанять разработчик, вы можете связаться со мной.

Спасибо! Поделитесь этим постом с другими и помогите нам расти и улучшаться.

Рассмотрено Мариана Сантос

Обратитесь к этим командам, если хотите больше. Используйте идентификатор или имя контейнеров для них.

Журналы контейнера

$docker logs containerid | name

История изображения

#docker history steadylearner/ubuntu_node

Удалить неиспользуемые изображения

$docker images
$docker image rm dockerimagename or docker rmi

Переименуйте контейнер

$docker rename randomname whatyouwant

Пауза и опровергайте контейнеры

$docker pause containerid | name
$docker ps -a
$docker unpuase containerid | name
$docker ps -a

Начать и остановить их

$docker stop containerid | name
$docker ps -a
$docker start containerid | name
$docker ps -a

Удалить контейнеры

$docker container rm containerid | name

Оригинал: «https://dev.to/steadylearner/how-to-use-docker-commands-42da»