Главная
Главная Руководства Docker › Docker - первые шаги



Автор:

Статья опубликована: 2017-07-01 15:48:06
Последние правки: 2022-04-06 21:03:35

Docker для новичков. Первый образ. Первый контейнер. Ubuntu.

  • Устанавливаем Docker в Ubuntu
    # apt-get update && apt-get -y upgrade && apt-get autoremove
    # apt install -y apt-transport-https ca-certificates curl software-properties-common
    # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    # add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
    # apt install -y docker-ce
    
    Проверяем:
    # systemctl status docker
    
    Добавляем себя (username0 в группу docker:
    $ sudo usermod -aG docker username
    


  • Образы (Images)
    Образ - это статический билд на основе определенной операционной системы. Существует официальный репозиторий образов docker, поэтому, прежде чем создавать свой образ, проверьте там.

    Команды:
    - вывести список локальных образов:
    # docker images
    
    - удалить локальный образ:
    # docker image rm IMAGENAME
    

  • Делаем свой образ на основе образа Ubuntu 16.04.
    В отдельной директории создаем файл Dockerfile:
    FROM ubuntu:16.04
    
    ENV DEBIAN_FRONTEND noninteractive
    
    RUN apt-get update && apt-get install -y apt-utils && apt-get upgrade -y && apt-get install -y supervisor libmojolicious-perl libdbi-perl libdbd-mysql-perl
    
    ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf
    ADD test_dir /test_dir/
    
    CMD ["/usr/bin/supervisord"]
    
    - FROM... : название исходного образа;
    - ENV DEBIAN_FRONTEND... : строка чисто для Ubuntu, чтобы не орало что запущена не в интерактиве;
    - RUN... : команды, которые нужно выполнить после запуска, записаны в одну строку, чтобы не плодились файлы транзакций;
    - ADD supervisord.conf... : копируем в образ файл supervisord.conf, о нем ниже;
    - ADD test_dir /test_dir/ : копируем в образ содержимое локальной директории test_dir. Директория будет создана в корне образа;
    - CMD... : все, что записано тут, будет выполняться при запуске контейнера на основе этого образа;

    supervisord - это сервис в Ubuntu, который предназначен для запуска программ с определенными параметрами и отслеживания их состояния. Пример файла supervisord.conf:
    [supervisord]
    nodaemon=true
    loglevel=debug
    
    [program:test]
    directory=/test_dir
    command=/usr/bin/perl test.pl
    
    Создаем образ с названием test-perl:
    # docker build -t test-perl ./
    
    Забегая вперед, запускаем самоудаляемый контейнер с именем run-test-perl на основе нашего образа test-perl:
    # docker run --rm --name run-test-perl test-perl
    


  • Контейнеры (Containers)
    Контейнер - это запущенный инстанс образа.

    Команды:
    - список контейнеров:
    # docker ps -a
    
    - посмотреть информацию о контейнере:
    # docker inspect CONTAINER_NAME
    
    - остановить контейнер:
    # docker stop CONTAINER_NAME
    
    - удалить контейнер:
    # docker container rm CONTAINER_NAME
    
    - удалить все контейнеры:
    # docker rm $(docker ps -aq)