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

相关文章

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基