Docker Machine 入门实践@FreeBSD

2024-04-29 11:52

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

在这篇文档里,我们安装了docker machine:FreeBSD安装Docker记录-CSDN博客

在这篇文档里,我们启动虚拟主机myvm并进入虚拟主机:boot2docker实践@FreeBSD-CSDN博客

现在开始更深入的进行 docker的实战演练。参考Docker Machine官方文档:Docker Machine | 菜鸟教程

 

 Docker Machine 入门实践

基本操作

在FreeBSD系统中,使用docker-machine命令查看一下docker:

docker-machine ls
NAME       ACTIVE   DRIVER       STATE     URL   SWARM   DOCKER    ERRORS
myvm       *        virtualbox   Running                 Unknown   Machine does not have a host-only adapter
testmyvm   -        virtualbox   Stopped                 Unknown   

就像前面文档中讲到的,可以使用如下命令创建一个:

docker-machine create --driver virtualbox test

查询docker ip

docker-machine ip myvm

停止和启动

docker-machine  stop myvm
docker-machine  start myvm

进入机器

docker-machine ssh myvm

进阶操作

查看虚拟主机的情况

docker-machine inspect  myvm

输出信息

{"ConfigVersion": 3,"Driver": {"IPAddress": "","MachineName": "myvm","SSHUser": "docker","SSHPort": 0,"SSHKeyPath": "","StorePath": "/home/skywalk/.docker/machine","SwarmMaster": false,"SwarmHost": "tcp://0.0.0.0:3376","SwarmDiscovery": "","VBoxManager": {},"HostInterfaces": {},"CPU": 1,"Memory": 1024,"DiskSize": 20000,"NatNicType": "82540EM","Boot2DockerURL": "","Boot2DockerImportVM": "","HostDNSResolver": false,"HostOnlyCIDR": "192.168.99.1/24","HostOnlyNicType": "82540EM","HostOnlyPromiscMode": "deny","UIType": "headless","HostOnlyNoDHCP": false,"NoShare": false,"DNSProxy": true,"NoVTXCheck": false,"ShareFolder": ""},"DriverName": "virtualbox","HostOptions": {"Driver": "","Memory": 0,"Disk": 0,"EngineOptions": {"ArbitraryFlags": [],"Dns": null,"GraphDir": "","Env": [],"Ipv6": false,"InsecureRegistry": [],"Labels": [],"LogLevel": "","StorageDriver": "","SelinuxEnabled": false,"TlsVerify": true,"RegistryMirror": [],"InstallURL": "https://get.docker.com"},"SwarmOptions": {"IsSwarm": false,"Address": "","Discovery": "","Agent": false,"Master": false,"Host": "tcp://0.0.0.0:3376","Image": "swarm:latest","Strategy": "spread","Heartbeat": 0,"Overcommit": 0,"ArbitraryFlags": [],"ArbitraryJoinFlags": [],"Env": null,"IsExperimental": false},"AuthOptions": {"CertDir": "/home/skywalk/.docker/machine/certs","CaCertPath": "/home/skywalk/.docker/machine/certs/ca.pem","CaPrivateKeyPath": "/home/skywalk/.docker/machine/certs/ca-key.pem","CaCertRemotePath": "","ServerCertPath": "/home/skywalk/.docker/machine/machines/myvm/server.pem","ServerKeyPath": "/home/skywalk/.docker/machine/machines/myvm/server-key.pem","ClientKeyPath": "/home/skywalk/.docker/machine/certs/key.pem","ServerCertRemotePath": "","ServerKeyRemotePath": "","ClientCertPath": "/home/skywalk/.docker/machine/certs/cert.pem","ServerCertSANs": [],"StorePath": "/home/skywalk/.docker/machine/machines/myvm"}},"Name": "myvm"
}

 现在还无法通过docker-machine命令获得虚拟机的ip地址等信息,只好到virtual box中查看ip,发现是192.168.5.102 ,可以通过ssh来登录它。

ssh docker@192.168.56.102
docker@192.168.56.102's password: ( '>')/) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.(/-_--_-\)           www.tinycorelinux.netdocker@boot2docker:~$ 

这样至少也可以开始后面的docker操作了。

总结:

前段时间整docker的时候,弄出来的docker-machine ,现在终于算是会玩了。

整个流程就是:

FreeBSD下使用pkg install docker-machine安装docker-machine,

然后可以使用docker-machine命令创建tiny-linux核心的boot2docker虚拟主机,并可在virtual-box中启动这个虚拟主机。boot2docker虚拟主机里面有全套的docker实现套件,这样就可以开始docker之旅了。

这就是在FreeBSD系统下进行docker的终极解决方案。

boot2docker本来是为了mac os和windows下使用docker而生的,但是后来mac和win下都有了docker实现,反而现在成了FreeBSD下的解决方案,真是事事难料、造化弄人啊! 

调试

虚拟机报错Error getting IP address: Machine does not have a host-only adapter

在vitrual-machine里给myvm虚拟机设定一块host-only的网卡

命令docker-machine ip报错err     : exit status 255

docker-machine ip myvm
(docker@127.0.0.1) Password for docker@x250:
(docker@127.0.0.1) Password for docker@x250:
(docker@127.0.0.1) Password for docker@x250:
Error getting IP address: ssh command error:
command : ip addr show
err     : exit status 255
output  :
提示需要输入docker的密码,我要想想...

问题是这个密码是啥时候输入、设定的啊!先保留问题,后面发现可以暂时不输入口令跳过,但是不知道这样处理是否正确(感觉肯定是有问题的)

docker-machine  start myvm 报错

docker-machine start  myvm
Starting "myvm"...
(myvm) Check network to re-create if needed...
(myvm) Found a new host-only adapter: "vboxnet16"
Error setting up host only network on machine start: /usr/local/bin/VBoxManage hostonlyif ipconfig vboxnet16 --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
 

这个没解决,暂时采用到Virtual-box里面手动开机处理。

boot2docker默认的用户名和密码

在 boot2docker 中,默认的用户名和密码是:

user: docker pass: tcuser

登录方法:

$ ssh docker@localhost -p 2022

不过这个登录方法,在FreeBSD下,还没法用,因为根本就没看到2022端口啊。

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



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

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

springboot依靠security实现digest认证的实践

《springboot依靠security实现digest认证的实践》HTTP摘要认证通过加密参数(如nonce、response)验证身份,避免明文传输,但存在密码存储风险,相比基本认证更安全,却因... 目录概述参数Demopom.XML依赖Digest1Application.JavaMyPasswo

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Java 结构化并发Structured Concurrency实践举例

《Java结构化并发StructuredConcurrency实践举例》Java21结构化并发通过作用域和任务句柄统一管理并发生命周期,解决线程泄漏与任务追踪问题,提升代码安全性和可观测性,其核心... 目录一、结构化并发的核心概念与设计目标二、结构化并发的核心组件(一)作用域(Scopes)(二)任务句柄

Java中的Schema校验技术与实践示例详解

《Java中的Schema校验技术与实践示例详解》本主题详细介绍了在Java环境下进行XMLSchema和JSONSchema校验的方法,包括使用JAXP、JAXB以及专门的JSON校验库等技术,本文... 目录1. XML和jsON的Schema校验概念1.1 XML和JSON校验的必要性1.2 Sche

SpringBoot集成WebService(wsdl)实践

《SpringBoot集成WebService(wsdl)实践》文章介绍了SpringBoot项目中通过缓存IWebService接口实现类的泛型入参类型,减少反射调用提升性能的实现方案,包含依赖配置... 目录pom.XML创建入口ApplicationContextUtils.JavaJacksonUt

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分