Посібник для початківців для Docker - як створити свою першу програму Docker

Ви розробник і хочете почати з Docker? Ця стаття створена для вас.

Після короткого вступу про те, що таке Docker і чому його використовувати, ви зможете створити свою першу програму за допомогою Docker.

Що таке Docker?

Docker - це безкоштовне програмне забезпечення, розроблене Docker Inc.. Воно було представлене широкому загалу 13 березня 2013 року і з того дня стало обов’язковим для розвитку ІТ-технологій.

Це дозволяє користувачам створювати незалежні та ізольовані середовища для запуску та розгортання його програм. Потім ці середовища називаються контейнерами.

Це дозволить розробнику запустити контейнер на будь-якій машині.

Як бачите, з Docker більше не виникає проблем із залежністю чи компіляцією. Все, що вам потрібно зробити, це запустити свій контейнер, і ваша програма запуститься негайно.

Але Docker - це віртуальна машина?

Ось одне з найбільш часто задаваних питань про Docker. Відповідь така: насправді, не зовсім.

Спочатку це може виглядати як віртуальна машина, але функціональність не однакова.

На відміну від Docker, віртуальна машина матиме повну операційну систему. Він буде працювати самостійно і діятиме як комп’ютер.

Docker буде ділитися ресурсами хост-машини лише для того, щоб запускати її середовища.

Навіщо використовувати Docker як розробника?

Цей інструмент може реально змінити повсякденне життя розробника. Для кращої відповіді на це питання я написав неповний перелік переваг, які ви знайдете:

  • Докер швидко. На відміну від віртуальної машини, ваша програма може запуститися за кілька секунд і зупинитися так само швидко.
  • Docker багатоплатформенний. Ви можете запустити свій контейнер у будь-якій системі.
  • Контейнери можна будувати та знищувати швидше, ніж віртуальна машина.
  • Більше труднощів з налаштуванням робочого середовища. Після налаштування Docker вам більше не доведеться перевстановлювати залежності вручну. Якщо ви змінюєте комп’ютер або якщо працівник приєднується до вашої компанії, вам потрібно лише надати їм свою конфігурацію.
  • Ви підтримуєте чистоту робочого простору, оскільки кожне із ваших середовищ буде ізольованим, і ви можете будь-коли видалити їх, не впливаючи на решту.
  • Буде простіше розгорнути свій проект на своєму сервері, щоб перевести його в Інтернет.

Тепер давайте створимо вашу першу програму

Тепер, коли ви знаєте, що таке Docker, настав час створити свою першу програму!

Мета цього короткого підручника - створити програму Python, яка відображає речення. Цю програму доведеться запустити через Dockerfile.

Ви побачите, це не дуже складно, як тільки ви зрозумієте процес.

Примітка: Вам не потрібно буде встановлювати Python на свій комп’ютер. Середовище Docker буде містити Python для виконання вашого коду.

1. Встановіть Docker на свою машину

Для Ubuntu:

Спочатку оновіть свої пакети:

$ sudo apt update

Далі встановіть докер за допомогою apt-get:

$ sudo apt install docker.io

Нарешті, переконайтесь, що Docker встановлений правильно:

$ sudo docker run hello-world
  • Для MacOSX: ви можете перейти за цим посиланням.
  • Для Windows: ви можете перейти за цим посиланням.

2. Створіть свій проект

Для того, щоб створити свою першу програму Docker, я запрошую вас створити папку на своєму комп’ютері. Він повинен містити наступні два файли:

  • Файл ' main.py ' (файл python, який міститиме код, який потрібно виконати).
  • Файл ' Dockerfile ' (файл Docker, який міститиме необхідні вказівки щодо створення середовища).

Зазвичай у вас повинна бути така архітектура папок:

. ├── Dockerfile └── main.py 0 directories, 2 files

3. Відредагуйте файл Python

Ви можете додати наступний код у файл ' main.py ':

#!/usr/bin/env python3 print("Docker is magic!")

Нічого виняткового, але як тільки ти бачиш “ Docker - це магія! ”, Що відображається у вашому терміналі, ви дізнаєтесь, що ваш Docker працює.

3. Відредагуйте файл Docker

Деяка теорія: перше, що потрібно зробити, коли ви хочете створити свій Dockerfile - це запитати себе, що ви хочете зробити. Наша мета - запустити код Python.

To do this, our Docker must contain all the dependencies necessary to launch Python. A linux (Ubuntu) with Python installed on it should be enough.

The first step to take when you create a Docker file is to access the DockerHub website. This site contains many pre-designed images to save your time (for example: all images for linux or code languages).

In our case, we will type ‘Python’ in the search bar. The first result is the official image created to execute Python. Perfect, we’ll use it!

# A dockerfile must always start by importing the base image. # We use the keyword 'FROM' to do that. # In our example, we want import the python image. # So we write 'python' for the image name and 'latest' for the version. FROM python:latest # In order to launch our python code, we must import it into our image. # We use the keyword 'COPY' to do that. # The first parameter 'main.py' is the name of the file on the host. # The second parameter '/' is the path where to put the file on the image. # Here we put the file at the image root folder. COPY main.py / # We need to define the command to launch when we are going to run the image. # We use the keyword 'CMD' to do that. # The following command will execute "python ./main.py". CMD [ "python", "./main.py" ]

4. Create the Docker image

Once your code is ready and the Dockerfile is written, all you have to do is create your image to contain your application.

$ docker build -t python-test . 

The ’-t’ option allows you to define the name of your image. In our case we have chosen ’python-test’ but you can put what you want.

5. Run the Docker image

Once the image is created, your code is ready to be launched.

$ docker run python-test

You need to put the name of your image after ‘docker run’.

There you go, that’s it. You should normally see “Docker is magic!” displayed in your terminal.

Code is available

If you want to retrieve the complete code to discover it easily or to execute it, I have put it at your disposal on my GitHub.

-> GitHub: Docker First Application example

Useful commands for Docker

Before I leave you, I have prepared a list of commands that may be useful to you on Docker.

  • List your images.
$ docker image ls
  • Delete a specific image.
$ docker image rm [image name]
  • Delete all existing images.
$ docker image rm $(docker images -a -q)
  • List all existing containers (running and not running).
$ docker ps -a
  • Stop a specific container.
$ docker stop [container name]
  • Stop all running containers.
$ docker stop $(docker ps -a -q)
  • Delete a specific container (only if stopped).
$ docker rm [container name]
  • Delete all containers (only if stopped).
$ docker rm $(docker ps -a -q)
  • Display logs of a container.
$ docker logs [container name]

What’s next?

After all your feedback, I decided to write the next part of this beginner’s guide. In this article, you will discover how to use docker-compose to create your first client/server-side application with Docker.

-> A beginner’s guide to Docker — how to create a client/server side with docker-compose

Conclusion

You can refer to this post every time you need a simple and concrete example on how to create your first Docker application. If you have any questions or feedback, feel free to ask.

Don't miss my content by following me on Twitter and Instagram.

You can find other articles like this on my website: herewecode.io.

Want more?

  • Each week get a motivational quote with some advice, a short tutorial into a few slides, and one developer's picture on Instagram.
  • Sign-up for the newsletter and get the latest articles, courses, tutorials, tips, books, motivation, and other exclusive content.