Docker简单实践
记录一点使用Docker的步骤。这应该算不上教程,纯粹就是为了方便日后查阅所写的操作记录。
创建容器时挂载目录
例如,我们要创建一个运行有nginx的静态网站容器(不含PHP等动态页面),但我们希望可以将本机上的一个文件夹挂载到容器内,方便容器上的应用程序使用。例如,我们在/container_files
目录下,有两个文件夹conf
和www
,其中conf
文件夹里有nginx的配置文件,而www
文件夹中有一个网站的静态网页文件(一堆HTML),我们希望配置一个nginx容器,使得提供对www
文件夹中网站的访问。
此时,我们需要使用到-v
参数。
准备文件
我们以上面所述的例子进行示例。下面的文件名和文件夹名称是什么都无所谓,只要在后面对号入座即可。
首先,先在www
文件夹中放置好要访问的网站文件,如index.html等。
接着,我们在conf
文件夹中,编写一个nginx的配置文件,例如文件名是myserver.conf
,主要是在nginx中创建一个虚拟服务器。文件内容参考如下。
1 | server { |
这里server
监听的端口是容器所监听的端口,稍微把容器想象成一个虚拟机,这个端口和本机上的端口不同,是随你选择的。但要注意,nginx容器默认的server监听了80端口,为了方便起见可以避开这个端口。
记得将root
的路径(网站根目录),修改成你(将要)在容器中,挂载存有你的网站文件的目录。这里,我们计划将本机的www
文件夹,挂载到容器根目录下的myweb
路径上,因此我们在root
后面写/myweb
。
创建容器
使用如下命令创建容器。
1 | sudo docker run -d --name nginx-test1 -p 61080:8081 -v /container_files/www:/myweb -v /container_files/conf:/etc/nginx/conf.d nginx |
我们看看上面命令的含义。
首先,-d
参数代表在后台运行该容器。
--name nginx-test1
表示我们将该容器命名为nginx-test1
,名字是你自己起的,以方便操作作为首要目标。
-p 61080:8081
,将本机的61080端口映射到容器的8081端口,即访问本机的61080端口,就相当于访问了容器的8081端口。8081是上面你在server
中选择的端口。
-v /container_files/www:/myweb
,将本机的/container_files/www
路径,映射到容器中的/myweb
路径,即在容器中访问/myweb
路径,就可以访问本机/container_files/www
路径下的文件。其作用是,将保存在本机/container_files/www
下的网站文件提供给容器,方便容器访问。
-v /container_files/conf:/etc/nginx/conf.d
,和上述类似,是将本机/container_files/conf:
中的nginx配置文件提供给容器,使得容器按照里面的配置文件,创建虚拟服务器。
nginx
指定了运行本容器采用的镜像为nginx镜像。
运行之后
浏览器HTTP访问本机的61080端口(和上面映射的本机端口相同),即可访问目标网站。
这个文章没有系统的介绍,边用边学边更新。