新手学Docker(2)熟悉Run命令

本篇概览

在本小节里,咱们将从Image仓库里拉取并运行Nginx,尝试下将本地文件和container文件相映射,Nginx相比hello-world多了些启动参数,咱们将逐个攻破。html

准备应用

咱们在本机新建一个项目文件夹,在里面建立咱们的静态资源文件,随后往index.html随便写点内容,执行下pwd命令获取一下当前文件夹所在路径。nginx

mkdir class01 && cd class01
touch index.html
pwd

获取Nginx Image

咱们打开国内的Docker Hub镜像站,搜索Nginx,第一个即是咱们所须要的,打开Image详情页,会有详细地使用说明,咱们先使用命令行方式去运行这个Imagedocker

docker pull nginx
docker run --name my-nginx  -d -p 3000:80 nginx

命令解释:bash

  • --name为当前建立的container起一个好记的昵称,默认状况下docker会随机分配一个昵称spa

  • -d即Deamon,可以让进程在后台运行而不阻塞命令行。命令行

  • -p端口暴露,nginx一般运行在80端口,为了可以在主机访问container里的nginx,因此须要进行端口暴露,格式为:[host port]:[container port]code

这时咱们在本机访问localhost:3000,将会看到nginx的欢迎页。htm

挂载本机目录进程

若是想让nginx伺服本机的某个目录,咱们须要加上-v命令,-v即Volume,咱们但愿nginx可以以当前文件夹做为资源目录,这个过程称为挂载,经过[Host dir]:[container dir]的形式将主机的目录覆盖container里面的目录,固然b目录原本的内容不会丢失,当咱们不选择挂载时,其又将会生效。资源

docker ps # 显示当前正在运行的container,咱们能够找到刚刚建立的my-nginx
docker stop my-nginx
docker rm my-nginx # 中止并删除my-nginx
docker run --name my-nginx -v [your pwd]:/usr/share/nginx/html:ro -d -p 3000:80 nginx

添加的[your pwd]为最开始建立的index.html所在的文件夹,如~/coding/docker-learn/class01

命令解释:

  • :ro意为Read Only,对container增长只读权限,默认为可读写

咱们再次访问localhost:3000,显示的内容已是咱们建立的index.html了。

复用挂载的目录

上一步咱们为my-nginx这个container挂载了数据卷,若是咱们新的container也想用和my-nginx相同的数据卷呢?咱们可使用--volumns-from来复用数据卷地址。

docker run --name my-nginx1 --volumes-from my-nginx -d -p 3001:80 nginx

如今访问localhost:3001即可以获得同3000端口同样的效果了,试试docker ps看看目前运行中的container信息吧。

相关文章
相关标签/搜索