Docker - FreeBSD Wiki


本站和网页 https://wiki.freebsd.org/Docker 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Docker - FreeBSD Wiki
Search:
Login
Docker
RecentChangesFindPageHelpContentsDocker
Immutable PageCommentsInfoAttachments
More Actions:
Raw Text
Print View
Render as Docbook
Delete Cache
------------------------
Check Spelling
Like Pages
Local Site Map
------------------------
Rename Page
Delete Page
------------------------
Subscribe User
------------------------
Remove Spam
Revert to this revision
Package Pages
Sync Pages
------------------------
Load
Save
SlideShow
Docker on FreeBSD
Docker is a popular container tool and ecosystem, comparable to FreeBSD Container & Jail tools, used to simplify and speed-up the creation, deployment and management of isolated application environments. Docker Homepage Work is currently in-progress to develop a FreeBSD Containers: Jail runtime implementation ("runj") and FreeBSD OCI Container Specification necessary to integrate FreeBSD support into the broader Docker ecosystem. runj is officially supported by containerd, supports Linux Jails and experimental network support, see runj for more detail.
Contact
freebsd-virtualization mailing list IRC: #freebsd-docker and #bhyve channels on Libera Chat.
Past Work
A FreeBSD Docker port was originally made available in 2015, relying on ZFS, Jails and 64bit support for the Linux compatibility layer introduced in June that year. A genuine Docker, it supported containers from the official docker.io repository. github: kvasdopil/docker (Original Docker FreeBSD Port) Porting Notes: FREEBSD-PORTING.md FreeBSD Port: sysutils/docker-freebsd (Deleted: Jan 2020) At last update, Docker (docker-freebsd port) was marked broken due to the following build error: .gopath/src/github.com/docker/docker/pkg/system/mknod.go:12:22: cannot use dev
(type int) as type uint64 in argument to syscall.MknodA code review was opened in 2019 updating Docker to a later versions, but progress stalled.
Requirements
Limitations of the 64bit Linux compatibility subsystem will impact some Linux ABI containers and your testing and feedback is appreciated to help resolve any such issues. FreeBSD 11.1-RELEASE or newer, specifically any version after preliminary support for x86-64 Linux binaries was added.
Installation and Use
The following steps, executed with root privileges, should provide a working Docker environment: # pkg install docker-freebsd ca_root_nss
...
New packages to be INSTALLED:
docker-freebsd: 06252015
ca_root_nss: 3.19.1_1
bash: 4.3.39_2
indexinfo: 0.2.3
gettext-runtime: 0.19.4
go: 1.4.2,1
sqlite3: 3.8.10.2
readline: 6.3.8
The process will require 155 MiB more space.
26 MiB to be downloaded.
...
You will need to create a ZFS dataset on /usr/docker
# zfs create -o mountpoint=/usr/docker <zroot>/docker
And lastly enable the docker daemon
# sysrc -f /etc/rc.conf docker_enable="YES"
# service docker startIf you're not already using ZFS, you will need to create a raw disk, otherwise follow the above steps as instructed in the package message.
Using Docker as a normal user
In order to use Docker as a non-root/non-super user account, your user must be in the operator group: # pw usermod <you> -G operatorAfter changing your user's group membership, log out and back in. Once logged back in docker ps should be usable (for example) as a non-superuser. % docker version
Client version: 1.7.0-dev
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 582db78
OS/Arch (client): freebsd/amd64
Server version: 1.7.0-dev
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 582db78
OS/Arch (server): freebsd/amd64
% docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 1122 [OK]
ansible/centos7-ansible Ansible on Centos7 45 [OK]
...
% docker pull centos
latest: Pulling from centos
f1b10cd84249: Pull complete
c852f6d61e65: Pull complete
7322fbe74aa5: Already exists
centos:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Digest: sha256:57554136c655abb33ecb7bb790b1db0279668d3763c3b81f31bc6c4e60e4a1f3
Status: Downloaded newer image for centos:latest
% docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos latest 7322fbe74aa5 4 weeks ago 172.2 MB
% docker run -t -i centos /bin/bash
[root@ /]# uname -a
Linux 2.6.32 FreeBSD 11.0-CURRENT #5 r285594: Tue Jul 14 23:30:11 EDT 2015 x86_64 x86_64 x86_64 GNU/LinuxFrom another terminal: % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
920bc5fbb45c centos "/bin/bash" 9 seconds ago Up 8 seconds jolly_poincare
# jls
JID IP Address Hostname Path
3 172.17.0.3 /usr/docker/zfs/graph/920bc5fbb45c
# zfs list
...
zroot/docker 119M 107G 6.02M /usr/docker
zroot/docker/03a7a57df9197f242484375c4bc2149248ded5aaafc4feb8e472d6774d495530 8K 107G 112M legacy
zroot/docker/03a7a57df9197f242484375c4bc2149248ded5aaafc4feb8e472d6774d495530-init 128K 107G 112M legacy
...
# mount
...
x220i/docker on /usr/docker (zfs, local, noatime, nfsv4acls)
x220i/docker/d03bcd7082d91179f58c8738f598f5af4db00307a47b5db255aefd30790e8bdc on /usr/docker/zfs/graph/d03bcd7082d9 (zfs, local, noatime, nfsv4acls)
linprocfs on /usr/docker/zfs/graph/d03bcd7082d9/proc (linprocfs, local)
linsysfs on /usr/docker/zfs/graph/d03bcd7082d9/sys (linsysfs, local)
devfs on /usr/docker/zfs/graph/d03bcd7082d9/dev (devfs, local, multilabel)
...
Creation of a ZFS root using raw disk
These steps are only necessary if you're not already using ZFS. The following steps allocate a 4G ZFS root file system using a raw disk, it allows you to test quickly. # kldload zfs
# dd if=/dev/zero of=/usr/local/dockerfs bs=1024K count=4000
# 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
FreeBSD under Docker
# docker search freebsd
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
...
lexaguskov/freebsd FreeBSD operating system 0
...
# docker pull lexaguskov/freebsd
...
Status: Downloaded newer image for lexaguskov/freebsd:latest
# docker run -t -i lexaguskov/freebsd /bin/csh
# df -h
Filesystem Size Used Avail Capacity Mounted on
zroot/docker/485f9654f69d5e9909344dd823dd0608f3734c433b667e9ec04492cc61ddbcfa 107G 176M 107G 0% /
Networking
# docker run -t -i centos ping -c2 8.8.8.8
WARNING: setsockopt(ICMP_FILTER): Protocol not available
WARNING: your kernel is veeery old. No problems.
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=56 time=15.0 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=56 time=14.1 ms
...
# docker run -t -i centos /bin/bash
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
...
ping sun.com
PING sun.com (156.151.59.35) 56(84) bytes of data.
64 bytes from lb-legacy-sun-cms-ucf.oracle.com (156.151.59.35): icmp_seq=1 ttl=244 time=51.5 ms
...
Common Errors
Missing /usr/docker! Please create / mount a ZFS dataset at this location.The "docker" dataset needs to be created. Error response from daemon: Get https://index.docker.io/v1/search?q=centos: x509: failed to load system roots and no roots providedThe "ca_root_nss" package is not installed.
Related
Operating-system level virtualization, including Application Containers and Jails
External References
Codebases
GitHub of the FreeBSD docker port Jetpack - FreeBSD Implementation of the Application Container Specification FreeBSD runtime (based on Jail) for opencontainers/runc
FreeBSD on Docker Hub
lexaguskov/freebsd: container image (hub.docker.com) kazuyoshi/freebsd-minimal: container image (hub.docker.com) Docker Hub Search: freebsd
FreeBSD Docker on News and Article
http://www.freenas.org/whats-new/2015/07/docker-done-right.html https://www.freebsdnews.com/2015/07/09/docker-freebsd/ https://news.ycombinator.com/item?id=9908195 CategoryVirtualization CategoryHowTo Docker (last edited 2022-10-21T01:44:57+0000 by KubilayKocak)
Immutable PageCommentsInfoAttachments
More Actions:
Raw Text
Print View
Render as Docbook
Delete Cache
------------------------
Check Spelling
Like Pages
Local Site Map
------------------------
Rename Page
Delete Page
------------------------
Subscribe User
------------------------
Remove Spam
Revert to this revision
Package Pages
Sync Pages
------------------------
Load
Save
SlideShow
MoinMoin PoweredPython PoweredGPL licensedValid HTML 4.01