Docker on FreeBSD

程序名称:Docker on FreeBSD

授权协议: Apache

操作系统: BSD

开发语言: Google Go

Docker on FreeBSD 介绍

Docker on FreeBSD 是 Docker 在 FreeBSD 系统上的移植版本。Docker 原本是为 Linux 所开发设计,而最新的
FreeBSD 11-CURRENT 和 10.2 将提供对 Docker 的支持。该系统严重依赖 ZFS、jail 以及 64位的 Linux 兼容层。

安装和使用方法:

# 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 start

启动信息:

# service docker onestart
Starting docker...

# 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/Linux

运行状态:

# 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)

Docker 下的 FreeBSD:

# 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%        /

网络:

# 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
...

Docker on FreeBSD 官网

https://wiki.freebsd.org/Docker

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Cyclone是一个打造容器工作流的云原生持续集成持续发布平台。 Cyclone主要致力于将代码从本地开发环境用任意容器引擎封装搬运到测试或者生产环境运行。Cyclone包括一下特性:
Kui Shell 为构建云原生应用程序提供了新的开发经验。通过将熟悉的 CLI 的功能与高影响力区域中的可视化相结合,Kui 使用户能够操作复杂的
Eclipse MicroProfile 是一个 Java 微服务开发的基础编程模型,它致力于定义企业 Java 微服务规范,MicroProfile
Kabanero 构建在 Knative、Istio 与 Tekton 之上,提供构建、流量管理与 CI/CD 等能力,同时支持与 Eclipse
Antrea 是一个 Kubernetes 网络解决方案,旨在实现 Kubernetes 原生。它使用 Open vSwitch 作为网络数据平面,在 Layer3/4 上运行,以为
Linkerd 是一个提供弹性云端原生应用服务网格(service mesh)的开源项目,也是面向微服务的开源 RPC 代理。它的核心是一个透明代理。
YugaByte 是用于构建关键型应用的云原生数据库。 YugaByte 使用 C++ 开发,支持 Cassandra 查询语言(CQL)以及 Redis 协议,对 PostgreSQL
Gloo 是一个基于 Envoy 的 Kubernetes 原生入口控制器和下一代 API 网关。Gloo 在函数级路由方面表现卓越,它支持传统应用程序、微服务与 Serverless。Gloo 设计独特,可支持混合应用,其中的多种技术、架构、协议
YugaByte DB 是一个高性能、云原生的分布式 SQL 数据库。 值得关注的特性包括:
ChubaoFS(储宝文件系统)是为大规模容器平台设计的分布式文件系统。它由元数据子系统、数据子系统和资源管理器组成。ChubaoFS
YugaByte 是用于构建关键任务应用程序的云原生数据库。此 repo 是 YugaByte Community Edition。
Draft 是由微软出品的一个帮助开发者在 Kubernetes 上快速创建云原生应用的工具。使用该工具,你可以不需要知道 Docker 或者
Camel K 是一个轻量级集成框架,它使得可以直接在 Kubernetes 与 Knative 上运行Camel。
APISIX 是一个基于云原生、高速可扩展的开源微服务网关节点实现,其自身主要优势是高性能和强大的扩展性。
Open Application Model 是什么? Open Application Model 是一个用来构建云原生应用的规范。它描述了一个模型,开发人员可以在其中定义应用程序组件。应用程序操作员负责创建这些组件的实例并为它们分配应用程序配
ContainerOps 是云原生(Cloud Native)的 DevOps Orchestration。定义 DevOps 组件的基本容器,如Docker 或 rkt。 在浏览器中使用 WYSIWYG 编辑器绘制 DevOps 工作流程,混合 DevOps 组件和现有的
Gravity 是一个开源工具包,为云原生应用程序提供真正的可移植性。它允许开发人员将 Kubernetes
iSula 是一种云原生轻量级容器解决方案,可通过统一、灵活的架构满足 ICT 领域端、边、云场景的多种需求。
Rook将文件、数据块和对象存储系统引入到Kubernetes集群,与其他正在使用存储的应用程序和服务一起无缝运行。通过这种方式,云原生集群可以在公有云和本地部署中自给自足并且具备可移植性。该项目的开发目的是使企
Camel Quarkus 致力于将 280+ Camel 组件移植和打包为 Quarkus 扩展。 Camel 是一个基于规则的路由以及媒介引擎,它提供了一个基于 POJO 的企业集成模式的实现,开发者可以采用其强大且十分易用的 API(Java