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



Автор:

Статья опубликована: 2018-09-21 21:38:27
Последние правки: 2018-09-23 18:22:45

Самая свежая информация об установке Docker (docker-freebsd) на FreeBSD.

Важно!

- Порт Docker под FreeBSD до сих пор в стадии beta, вы используете его на свой страх и риск. Я убедился в этом лично, получив ошибку при попытке запуска контейнера:
$ docker run -d -p 4444:4444 --name selenium-hub selenium/hub
Error response from daemon: json: cannot set embedded pointer to unexported struct: runconfig.hostConfigWrapper
В интернете этой ошибке уже два месяца, разработчики ничего не правят и я решил отложить дальнейшие эксперименты с docker-freebsd до лучших времен.
- Установить можно только на FreeBSD 11.1-RELEASE или выше.
- Используемая докером файловая система - zfs и никак иначе.
- swarm нет и в обозримом будущем не будет.


В FreeBSD все же можно запустить docker, но с некоторыми накладными расходами. Для этого служит порт docker-machine.

  • Использованные версии ПО:
    # uname -sr
    FreeBSD 11.1-RELEASE-p8
    
    # pkg info | grep docker
    docker-freebsd-20150625_1      Docker containment system
    

  • Установка
    # cd /usr/ports/security/ca_root_nss
    # make install clean
    # cd /usr/ports/sysutils/docker-freebsd
    # make install clean
    
    Добавляем в файл /etc/rc.conf:
    docker_enable="YES"
    

  • Делаем zfs dataset и монтируем его в /usr/docker

    - если ваша FreeBSD работает на zfs:
    # zfs create -o mountpoint=/usr/docker <zroot>/docker
    

    - если нет, то для экспериментов можно сделать zfs пул на основе файла, а в пуле сделать dataset.
    Создаем файл /usr/local/dockerfs размером 4 Гигабайта:
    # dd if=/dev/zero of=/usr/local/dockerfs bs=1024K count=4000
    
    Создаем zfs пул и dataset:
    # zpool create -f zroot /usr/local/dockerfs
    # zfs list
    NAME    USED  AVAIL  REFER  MOUNTPOINT
    zroot    55K  3.75G    19K  /zroot
    # zpool list                                                                                                                                                                             
    NAME    SIZE  ALLOC   FREE   FRAG  EXPANDSZ    CAP  DEDUP  HEALTH  ALTROOT
    zroot  3.88G  11.8M  3.86G     0%         -     0%  1.00x  ONLINE  -
    # zfs create -o mountpoint=/usr/docker zroot/docker
    

  • Запускаем
    # /usr/local/etc/rc.d/docker start
    

  • Разное

    Чтобы обычный пользователь мог работать с docker, его нужно добавить в группу wheel:
    # pw groupmod wheel -m <USER>