boot2docker实践@FreeBSD

2024-04-27 05:12
文章标签 实践 freebsd boot2docker

本文主要是介绍boot2docker实践@FreeBSD,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

boot2docker是专为Docker而设计的轻量极Linux发型包,解决Windows、OS X、FreeBSD不能安装Docker的问题。Boot2Docker完全运行于内存中,24M大小,启动仅5-6秒。Boot2Docker需要运行在VirtualBox中,同时意味着有VirtualBox就能运行Boot2Docker,所以FreeBSD下也可以使用Docker拉!

官网:GitHub - boot2docker/boot2docker: DEPRECATED; see https://github.com/boot2docker/boot2docker/pull/1408

 不过已经有3年多没有更新了。

在FreeBSD下安装使用步骤如下:

1 安装docker-machine

pkg install docker-machine

2 创建vitrual-box 虚拟主机myvm

docker-machine create --driver virtualbox myvm

输出:

docker-machine create --driver virtualbox myvm
Running pre-create checks...
Creating machine...
(myvm) Copying /home/xxxx/.docker/machine/cache/boot2docker.iso to /home/xxxx/.docker/machine/machines/myvm/boot2docker.iso...
(myvm) Creating VirtualBox VM...
(myvm) Creating SSH key...
(myvm) Starting the VM...
(myvm) Check network to re-create if needed...
(myvm) Found a new host-only adapter: "vboxnet14"
Error creating machine: Error in driver during machine creation: Error setting up host only network on machine start: /usr/local/bin/VBoxManage hostonlyif ipconfig vboxnet14 --ip 192.168.99.1 --netmask 255.255.255.0 failed:
VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)
VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp
 这样一个docker的linux虚拟主机文件就创建好了,后面就可以启动这个虚拟主机。

3 启动虚拟主机myvm并进入虚拟主机

可以使用

sudo -i 进入root账户

passwd 修改root账户口令

passwd docker 修改docker的口令

注意,因为boot2docker不存储信息,每次启动后账户密码都会复位

尝试docker命令pull(失败)

但是安装后,docker pull test ,报错:Error response from daemon: pull access denied for test, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

这里就劝退我了

后来按照提示发现需要docker账户

准备注册docker账户 ,但是官网的注册页面无法打开...

百度搜索,考虑可能需要用国内镜像 

编辑文件: /etc/docker/daemon.json

{"registry-mirrors": ["https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn"]
}

还是报错,先不管pull了。

docker pull和run成功的测试

先docker search hello 找测试,发现了testcontainers/helloworld ,于是进行测试:

docker pull testcontainers/helloworld docker run testcontainers/helloworld

哇,起来了呢! 

输出:

docker@boot2docker:~$ docker pull testcontainers/helloworld                             
Using default tag: latest
latest: Pulling from testcontainers/helloworld
Digest: sha256:4ee5a832ef6eee533df7224b80d4cceb9ab219599014f408d0b69690be94c396
Status: Image is up to date for testcontainers/helloworld:latest
docker.io/testcontainers/helloworld:latest
docker@boot2docker:~$ docker run testcontainers/helloworld                              
2024/04/26 14:49:47 DELAY_START_MSEC: 0
2024/04/26 14:49:47 Sleeping for 0 ms
2024/04/26 14:49:47 Starting server on port 8080
2024/04/26 14:49:47 Sleeping for 0 ms
2024/04/26 14:49:47 Starting server on port 8081
2024/04/26 14:49:47 Ready, listening on 8080 and 8081

测试成功,后面需要啥docker,都可以pull和run拉! 

这篇关于boot2docker实践@FreeBSD的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939603

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J