我正在尝试在基于 boot2docker 的 OpenFOAM docker-machine 映像上安装一些软件包。运行uname -a
命令时,我得到的信息:
默认 4.4.111-boot2docker #1 SMP 星期四 1月 11 16:25:31 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
在此页面中,已经解释了boot2docker发行版基于Tiny Core Linux
发行版,因此要安装软件包,必须:
- 查看 Tiny Core Linux 软件存储库页面
- 使用命令
tce-load -w -i packagename.tcz
安装
我按照以下步骤安装了git,但是我收到错误:
bash:tce-load:找不到命令
我搜索了一下,正如这里所解释的,显然官方存储库是离线的。那里提供了镜像列表。但是我不知道如何从这些镜像安装软件包!
附言或者,OP的一个奇怪的答案已被投票赞成,而不清楚他/她所说的运行boot2docker ssh
是什么意思
如果您能帮助我知道问题是什么以及如何解决,我将不胜感激。
更新 10-12-2021:
现在我更好地理解了为什么uname -a
会返回它所做的事情。基本上,所有 docker 容器与主机 Linux 操作系统共享相同的内核(参考)。要知道容器的操作系统是什么,一个安全的选项是cat /etc/issue
(参考)。此外,似乎一些新的"官方"OpenFOAM容器基于Ubuntu,没有任何管理员密码。因此,只需安装带有apt
/apt-get
/...
新/正确:
感谢ESI集团的Pawan Ghildiyal和OpenCFD Limited的Karen Kettle,我找到了正确的解决方案。
似乎整个OpenFOAM码头工人映像是基于CentOS
而不是boot2docker
,可以使用yum
轻松安装新软件包!因为使 docker 能够运行的小型虚拟盒接口被命名为 boot2docker,所以当uname -a
询问时,它会以boot2docker
的形式返回。 你只需要在 docker 终端中使用root
用户:
- 运行
Docker QuickStart Terminal
(我正在使用窗口) docker start of_1712
docker exec -ti of_1712 /bin/bash
su -
,然后是默认密码,在本例中为fuser2017
!yum install packageName
旧/错:
正如这里所解释的,事实证明Docker弃用了Boot2Docker
命令行,转而使用docker-machine
。所以这里提供的答案也是折旧的。
溶液:
-
使用命令
docker-machine ssh machinename
(在我的情况下machinename
default
)连接到 docker 机器映像。 -
如此处所述,运行命令
version
并在正确的存储库中查找包名称。 就我而言,版本8.2.1
,存储库http://repo.tinycorelinux.net/8.x/x86/tcz/
-
然后运行命令
tce-load -w -i packagename.tcz
。
由于某种原因,OpenFOAM团队提供的官方OpenFOAM_Start
批处理文件不起作用!