Работа с Docker

Цель работы

Научиться основам работы с Docker.

План работы

  • Установить Docker
  • Запустить готовый образ с Nginx
  • Создать и запустить свой образ

Подготовительный этап

  • Подключитесь к серверу по протоколу SSH.
  • Создайте отчет о выполнении лабораторной работы в формате *.docx.

Установка Docker

  1. Ознакомьтесь с инструкцией: https://docs.docker.com/engine/install/ubuntu/.

  2. Выполните основные шаги по установке Docker Engine:

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    
    echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    sudo apt-get update
       
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  3. Ознакомьтесь с содержанием файла /etc/apt/sources.list.d/docker.list.

    Добавьте содержание файла к отчету.

  4. Добавьте вашего пользователя к группе docker:

    sudo usermod -a -G docker $(whoami)
    
  5. Переподключитесь к серверу и проверьте работу Docker Engine:

    docker run hello-world
    

    Добавьте скриншот к отчету.

Запуск готового образа с Nginx

  1. Выполните команду docker run --help и законспектируйте в отчет:

    • назначение команды run
    • значение следующих ключей:
      • --detach
      • --env и --env-file
      • --name
      • --publish
      • --rm
      • --volume
  2. Выполните команду docker images --help и законспектируйте в отчет назначение команды images

  3. Выполните команду docker ps --help и законспектируйте в отчет:

    • назначение команды ps
    • значение ключа: --all
  4. Выполните команду docker stop --help и законспектируйте в отчет назначение команды stop

  5. Запустите образ с веб-сервером Nginx:

    docker images
    
    docker run -d -p 80:80 --name test-nginx nginx
    
    docker images
    

    Добавьте к отчету скриншот работы команд в консоли. Дополнительно опишите использованные аргументы команды docker run

  6. Откройте в браузере адрес сервера по протоколу http.

    Добавьте к отчету скриншот браузера

  7. Остановите контейнер:

    docker ps -a
    
    docker stop test-nginx
    
    docker ps -a
    

    Добавьте к отчету скриншот работы команд в консоли.

Создание и запуск своего образа

  1. Выполните команду docker build --help и законспектируйте в отчет:

    • назначение команды build
    • значение ключа --tag
  2. Откройте документацию по Dockerfile и законспектируйте в отчет назначение следующих команд:

    • ADD
    • CMD
    • COPY
    • ENV
    • EXPOSE
    • FROM
    • RUN
    • WORKDIR
  3. Создайте в домашнем каталоге пользователя подкаталог app и войдите в него. Создайте в нем следующие файлы:

    • app.py:

      from flask import Flask
      app = Flask(__name__)
      @app.route("/")
      def hello_world():
          return "<p>Hello, World!</p>"
      
    • Dockerfile:

      FROM python:3.11-slim
      COPY . .
      RUN pip install flask
      CMD flask run --host=0.0.0.0
      
  4. Создайте образ и запустите его:

    docker build -t custom-image .
    
    docker run -d -p 80:5000 custom-image
    

    Добавьте к отчету скриншот работы команд в консоли.

  5. Откройте в браузере адрес сервера по протоколу http.

    Добавьте к отчету скриншот браузера

Изучение литературы

  1. Ознакомьтесь с циклом статей «Изучаем Docker» на сайте Habr: