在docker中安装一个apache服务器(基于Ubuntu),并在外部电脑访问这个服务器
上篇博客中,我们讨论了如何在ubuntu 14.04(64位)中安装一个docker应用,以及docker的一些基本命令的用法及其解释:
http://blog.csdn.net/liujan511536/article/details/46227169
接下来我们说下如何利用docker来建一个apache服务器镜像,并把我们的html文件传到这个镜像里,最终我们可以在dcoker外的电脑访问到这个docker中的apache服务器。
这里架设服务器我用的是xampp。
注意:如果你对下面的某些命令有不理解的地方,请看我的上一篇博客。
首先下载xampp,选linux版本:
下载地址:https://www.apachefriends.org/download.html
启动docker:
service docker start
或者用这条命令:
sudo docker -d
(如果启动有什么问题的话,请看上篇博客末尾的常见问题)
然后把我们下载的xampp.run上传到容器中来,这里我的xampp.run放在/home/Download目录下,假设我的镜像名为ubuntu
sudo docker run –i –t –v /home/Download/xampp.run:/tmp/xampp.run ubuntu /bin/bash
运行上述命令后,就会启动了一个容器,并进入到容器命令行中;
接着安装xampp
(xampp在Ubuntu中默认安装路径为/opt/lampp)
进入容器中的tmp目录:
cd /tmp
运行xampp.run(这里如果有什么权限问题,用sudo chmod 777 *解决):
sudo ./xampp.run
然后就是安装的过程了,有需输入的地方,为了方便可以直接按Enter或者y就可以了。
安装完xampp后,紧接着输入:
mysql –u root
显示是Command not found,因为我们还没把mysql的执行文件目录加入到环境变量PATH中。
把mysql执行文件目录(默认目录是/opt/lamp/bin)加入到PATH中:
sudo vim ~/.bashrc #没有vim可用sudo apt-get install vim安装vim
打开.bashrc后,在其最后加上这句:
export PATH=$PATH:/opt/lampp/bin
保存后退出vim,接着在输入一下命令使得上述修改生效:
source ~/.bashrc
以下命令可用来启动apache,mysql和php:
/opt/lampp/lampp start
这时再输入mysql就可以进入的mysql解释器中了(输入exit可退出解释器)
接着在本机电脑中打开另一个命令行终端,输入:
sudo docker ps
来查看刚才运行的那个容器的id,然后退出那个容器(在容器命令行中输入exit),再将那个容器保存成新的镜像:
sudo docker commit 容器id 新镜像名
接着启动新保存的那个镜像,假设镜像名为ubuntu2:
sudo docker run –i -t –p 8088:80 ubuntu2 /bin/bash
在启动容器命令行中输入以下命令来启动apache和mysql:
/opt/lampp/lampp start
到这里,就可以在本机电脑上访问上面容器中的apache服务器了。
打开本机电脑的浏览器,在地址栏中输入:
localhost:8088
然后显示的页面就是xampp的页面了
(如果这里显示的页面是无法连接之类的,请关掉容器然后重新启动容器)
回到刚才那个容器的命令行来,进入到apache中存放html文件的目录中(默认为/opt/lampp/htdocs):
cd /opt/lampp/htdocs
接着在htdcos目录下新建一个html文件:
sudo vim hello.html
文件内容为:
helloworld
保存并退出vim。
接着在本机电脑浏览器地址栏中输入:
localhost:8088/hello.html
不出意外的话,你就可以看到helloworld了;如果有意外,比如显示access forbidden之类的,请回到容器命令行,进入到htdocs目录,修改hello.html的权限(sudo chmod 777 hello.html)。
到这里,你已经学会了如何利用docker来建一个apache服务器,并在外部电脑中访问容器中的网页。