【以Docker作为学习基础】让我们开始使用Docker
下一次学习基础是Docker的主题,讨论Docker中的文件系统。
“开始的障碍”
当人们发现新的技术和应用时,往往会想要尝试一下。但是,收集和安装库,卸载后残留的点文件和点目录可能会让环境显得杂乱不堪,当安装后的版本阻塞或产生问题时,则会让人烦恼不已,这时候与其初次遇见时的激情可能就会减淡……
然而,这些障碍现在已成为过去。在这里,我想解释可变基础设施(更准确地说是“一次性组件”)如何消除入门障碍,即使对虚拟化有一点理解但从未使用过的人也可以轻松地入门。
-
- 対象読者:日頃は公私とも根っからのWindowsユーザーでLinux未経験、ただ仮想マシンを使えばWindows上で別OSが動く事ぐらいは知っている人。
-
- 目標:Windows上のdockerを使ってLinux系OS上で様々な技術を試せる、その導入部分までの誘導。
- 環境:Windows7 Ultimate SP1 64bit。基本的に他エディションでも8でも8.1でも問題無いはず。32bit?何それ本気?
Docker的安装
在PC重新启动后,启动Boot2docker Start会打开命令提示符,并启动boot2docker的虚拟机并分配IP地址。之后会显示一条消息,确认虚拟机已经启动并分配了IP地址,并在”$”提示符处停止运行。在这里,您可以通过运行”docker run hello-world”来验证docker的操作。请记下docker VM的IP地址,稍后会用到。尽管之后可以在命令提示符中使用”boot2docker ip”来进行确认。
其实这个时候的环境有点复杂,因为出现了一个看起来陌生的提示“boot2docker started”,我以为这是boot2docker(即Linux)环境,但事实并非如此。实际上,只是在Windows主机环境中运行了MinGW的sh shell。
使用MobaXterm
可以用这种方式连接。如果电脑刚启动或者boot2docker没有运行,需要先启动”Boot2docker Start”。如果能够通过ssh连接成功,就可以关闭MinGW窗口了,没问题。
以上结束!
最早无需安装任何东西。只需在主机操作系统上安装boot2docker,其他一概不会有任何污染。只需一条docker run命令,即可随心所欲地使用任何东西!
摸了一遍之后
每次运行`docker run`命令都会创建一个新的容器(类似虚拟机)。由于新容器与前一次运行的容器是不同的空间,所以之前写入的文件或其他内容都不会保留。已经运行的容器可以使用`docker stop`命令停止,之后可以使用`docker start`命令再次启动。`run`命令的参数是镜像名称,而`stop`和`start`命令的参数是容器ID(也可以是容器名称)。可以使用`docker ps -a`命令来确认这些信息。
然后
RStudio和Ruby的REPL暂且不说,Jenkins可以创建任务,但没有安装任何插件,而nginx只能看到”Welcome to nginx!”。此外,在docker容器内进行的更改会导致容器镜像的不断增大,从而对存储造成严重压力。关于这些问题的下一步将在另一篇文章中进行讨论。
如果Boot2docker Start无法运行,出现Waiting for VM and docker daemon to start…情况,可以从开始菜单启动Oracle VM VirtualBox,选择boot2docker-vm,然后在菜单中选择关闭虚拟机 – ACPI关机,等待虚拟机关闭。如果无法关闭,则选择关闭 – 关闭电源,然后关闭VBox并重新启动Boot2docker Start。如果仍然无法解决问题,可以尝试完全卸载和重新安装boot2docker来解决…似乎有效。
如果docker run hello-world失败,出现Couldn’t connect to Docker daemon或An error occurred ~~~ containers/create: x509: certificate is valid for ~情况,可以尝试的临时解决方法是使用boot2docker ssh ‘sudo /etc/init.d/docker restart’命令重启docker,但这并不是永久解决方法,有些麻烦。如果只是个人学习环境,可以考虑使用alias docker=”docker –tlsverify=false”来让其正常工作。