Главная
Главная Руководства FreeBSD › Установка docker-machine на FreeBSD



Автор:

Статья опубликована: 2018-09-22 21:28:48
Последние правки: 2023-07-15 00:09:50

Docker Machine - официальная альтернатива порту docker-freebsd для запуска Docker под FreeBSD.

Docker Machine используется для:
- установки и управления удаленными хостами с Docker;
- управления кластерами swarm;

Вы можете использовать Docker Machine для установки Docker Engine в виртуальных серверах на локальном компьютере, на физических серверах в локальной сети, в ЦОД или у облачных провайдеров, например, таких как Azure, AWS или Digital Ocean.

  • Использованные версии ПО:
    # uname -sr
    FreeBSD 11.1-RELEASE-p8
    
    # pkg info | grep docker
    docker-machine-0.15.0          Tool to create Docker hosts
    

  • Установка
    # cd /usr/ports/sysutils/docker-machine
    # make install clean
    
    Демон Docker использует специфические для Linux функции ядра, так что не получится запустить Docker в FreeBSD. Поэтому необходимо создать виртуальную машину и подключиться к ней через Docker Machine. В качестве виртуальной машины для FreeBSD рекомендуется использовать VirtualBox. По этой инструкции только устанавливаем VirtualBox, виртуальные машины создавать не надо.

    Создаем каталог:
    $ mkdir ~/.docker
    

  • Создаем машину

    Где? - Локально.
    Драйвер: virtualbox.
    Название: vm-docker1.

    Это делается командой:
    $ docker-machine create --driver=virtualbox vm-docker1
    
    У драйвера есть опции, которые позволяют задавать такие параметры виртуальной машины как размер ОЗУ, диска и т.д. Если создать машину без опций, то будут использованы их значения по умолчанию.
    $ docker-machine create --driver=virtualbox \
    --virtualbox-memory 2048 \
    --virtualbox-cpu-count 2 \
    --virtualbox-disk-size 3072 \
    --virtualbox-hostonly-cidr "192.168.3.1/24" \
    vm-docker1
    
    Running pre-create checks...
    Creating machine...
    (vm-docker1) Copying /home/<USER>/.docker/machine/cache/boot2docker.iso to /home/<USER>/.docker/machine/machines/vm-docker1/boot2docker.iso...
    (vm-docker1) Creating VirtualBox VM...
    (vm-docker1) Creating SSH key...
    (vm-docker1) Starting the VM...
    (vm-docker1) Check network to re-create if needed...
    (vm-docker1) Found a new host-only adapter: "vboxnet0"
    (vm-docker1) Waiting for an IP...
    Waiting for machine to be running, this may take a few minutes...
    Detecting operating system of created instance...
    Waiting for SSH to be available...
    Detecting the provisioner...
    Provisioning with boot2docker...
    Copying certs to the local machine directory...
    Copying certs to the remote machine...
    Setting Docker configuration on the remote daemon...
    Checking connection to Docker...
    Docker is up and running!
    To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env vm-docker1
    
    Смотрим список машин:
    $ docker-machine ls
    NAME         ACTIVE   DRIVER       STATE     URL                        SWARM   DOCKER        ERRORS
    vm-docker1   -        virtualbox   Running   tcp://192.168.3.100:2376           v18.06.1-ce
    

  • Работа с машиной

    - при помощи локального docker-клиента.
    Для этого вначале надо установить переменные окружения, чтобы клиент знал, с какой машиной работать. Смотрим переменные для машины vm-docker1:
    $ docker-machine env vm-docker1
    
    export DOCKER_TLS_VERIFY="1"
    export DOCKER_HOST="tcp://192.168.3.100:2376"
    export DOCKER_CERT_PATH="/home/<USER>/.docker/machine/machines/vm-docker1"
    export DOCKER_MACHINE_NAME="vm-docker1"
    # Run this command to configure your shell: 
    # eval $(docker-machine env vm-docker1)
    
    Устанавливаем переменные:
    $ eval $(docker-machine env vm-docker1)
    
    При просмотре списка, машина, для которой мы задали переменные окружения, будет отмечена звездочкой в столбике ACTIVE:
    $ docker-machine ls
    NAME         ACTIVE   DRIVER       STATE     URL                        SWARM   DOCKER        ERRORS
    vm-docker1   *        virtualbox   Running   tcp://192.168.3.100:2376           v18.06.1-ce
    
    Далее, работаем с docker прямо с хост-машины. Docker-клиента для FreeBSD можно установить из порта sysutils/docker.

    - зайти в виртуалку по ssh:
    $ docker-machine ssh vm-docker1
    
                            ##         .
                      ## ## ##        ==
                   ## ## ## ## ##    ===
               /"""""""""""""""""\___/ ===
          ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
               \______ o           __/
                 \    \         __/
                  \____\_______/
     _                 _   ____     _            _
    | |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
    | '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
    | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
    |_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
    Boot2Docker version 18.06.1-ce, build HEAD : c7e5c3e - Wed Aug 22 16:27:42 UTC 2018
    Docker version 18.06.1-ce, build e68fc7a
    docker@vm-docker1:~$
    
    В виртуалке уже установлен docker-клиент.

    Все команды Docker Machine можно посмотреть командой:
    $ docker-machine --help