这个实验是《深入浅出Docker》中的,容器应用的源代码在作者Nigel Poulton的Github主页https://github.com/nigelpoulton/psweb,下载后利用Dockerfile创建新的镜像,并运行。实验环境,CentOS7,因为是在另外一台电脑上运行的,所以没有截图(本人比较懒),只有文字描述,但是确实是成功了的。
1.先在本地新建一个空目录,将下载的源码压缩包保存在此地(源码下载有好几种方式,我选择了最简单的zip压缩包下载),然后解压缩(可以先看看系统中有没有unzip,没有的话下载一个)。
mkdir psweb
cd psweb
unzip xxxx.zip
cd xxxx(解压出来的文件夹)
ll(查看一下文件,可以打开Dockerfile看一下)
2.运行命令docker image build -t 自定义镜像名字:latest(版本号,写latest就可以). (这个点绝对不要少,代表就在解压出来的文件路径下执行命令)
docker image build -t test:latest .
在这一步遇到了错误,提示是:WARNING: IPv4 forwarding is disabled. Networking will not work.在网上查了一下解决办法,修改/usr/lib/sysctl.d/00-system.conf文件即 可,在文件最后加上net.ipv4.ip_forward=1,然后再重启网络和docker,再重复步骤2就可以了。
cd /usr/lib/sysctl.d
vi 00-system.conf
systemctl restart network
systemctl restart docker
3.可以用docker image ls 查看镜像是否创建成功,然后使用命令docker container run -d --name xxx(自定义) --publish 8080:8080(Dockerfile文件中指定的) xxx(镜像名字):latest 运行,然后打开浏览器,在地址栏输入运行docker的主机IP地址,再加上端口号,即可看到指定web界面,就成功啦!可以用ifconfig -a命令查看docker主机地址,会出来一个docker0设备,将地址粘贴进去即可,即dockerhostip:8080。
docker container run -d --name web1 --publish 8080:8080 test:latest