В этом посту мы узнаем, как использовать команды Docker. Мы сделаем веб-приложение внутри контейнера Docker и включаем его в документ докера. Мы также узнаем, как загрузить его на Docker Hub Отказ
Вы можете найти португальскую версию этого поста здесь.
[Пререквизит]
- Как установить Docker
- Докерный сайт , Учебная программа
- Как развернуть контейнер с Docker , Docker Lifecycle
Во-первых, вы должны установить Docker, если у вас его еще нет. Тип $ Docker На вашей машине, и вам будет показано, как приступить к установке. Или просто поиск, как установить его в вашем браузере.
Этот пост является резюме Докерный сайт , Учетная программа Docker и Т. Д. Я надеюсь, что вы прочитали их первым, но вам не нужно проводить с ними много времени. Мы узнаем, как развернуть веб-приложение и микросервисы на AWS с другими Steadylearner Blog посты.
Оглавление
- Подтвердите установку с nginx
- Настройте свою среду разработки с Docker
- Как переместить свои локальные файлы и папки в контейнеры Docker
- Как использовать веб-каркас с контейнерами Docker
- Как изменить сетевые порты Docker Images
- Докерские изображения и контейнеры
- Как загружать свои изображения Docker в Docker Hub
- Вывод
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. Просто подумайте о образах как о классах и контейнерах как экземпляры, которые вы используете на вашем компьютере. Ты сможешь:
Потяните или запустите (потяните и запускайте) изображения и сделают контейнеры Docker от них на вашей местной машине.
Редактировать файлы в контейнерах с $ Docker Exec -it Contactername Bash Отказ
Сделайте изображения из контейнеров с $ 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»