无聊的时候想学习一下新技术,手边刚好有一本好久之前入手的DOCKER书——《第一本Docker书》,这本书发行也有两年了(还只是中文版英文版应该还不止),由于时效的关系有的部分实验步骤需要做适当修改,以下就是本人在读本书的时候对所遇问题所做的修改。
宿主机OS型号: Linux TEST 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
1.P36 当构建运行我们第一个镜像为ubuntu的容器后,作者用ip查看了网络接口的ip,但是实际上ip命令是不存在的,需要手动安装net-tools,然后使用ifconfig命令查看网络接口。产生这种问题的原因可能是由于制定ubuntu镜像启动容器时,如果不指定版本默认会使用标签为latest的镜像(即顶层镜像),所以作者当时使用的镜像和我们的现在使用的镜像不同。
之后只要安装net-tools就可以使用ifconfig命令了
2. p106 按照书上所讲构建sinatra镜像 ,会提示提示如下错误:
请求Ruby的版本要>=2.2.2,于是我们将ruby的版本提升至2.2.5再次安装 。首先根据上一步cache的镜像,启动一个容器,检查ruby版本为1.9.3,这里我们安装rvm(ruby版本控制工具)。先安装curl,容器内安装curl
此步骤使用env命令记录下环境变量,然后执行source命令配置环境变量,留作记录,后续构建Dockerfile需要用到
一整套安装流程下来没有报错说明我们可以将它放到Dockerfile里面重新构建,
构建文件如上图,利用env设置环境变量 否则无法启动rvm 和 gem命令。