资讯专栏INFORMATION COLUMN

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

Enlightenment / 1916人阅读

摘要:准备应用我们在本机新建一个项目文件夹,在里面创建我们的静态资源文件,随后往随便写点内容,执行下命令获取一下当前文件夹所在路径。现在访问便可以得到同端口一样的效果了,试试看看目前运行中的信息吧。

本篇概览

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

准备应用

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

mkdir class01 && cd class01
touch index.html
pwd
获取Nginx Image

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

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

命令解释:

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

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

-p端口暴露,nginx通常运行在80端口,为了能够在主机访问container里的nginx,所以需要进行端口暴露,格式为:[host port]:[container port]

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

挂载本机目录

如果想让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信息吧。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26974.html

相关文章

  • 新手Docker(1)Hello World

    摘要:经过我们的处理就像在仓库里修改了文件一样,将修改后的打快照固化为,这便是生态的流动源泉。我们启动过的所有的将会在这里显示。输入,这一步我们不仅仅启动了一个,还传输了一个命令进去执行了。我们试着再次启动一个容器。 Docker从哪儿下载? 由于我们访问Docker官网一般情况下会非常慢,所以我们不得不把目光投向国内的镜像站,还好,DaoCloud为我们扫清了一系列障碍,点击前往。 你只需...

    caige 评论0 收藏0
  • Docker习之Container容器(4)

    摘要:容器是又一核心概念。启动已终止容器可以利用命令,直接将一个已经终止的容器启动运行。此外,当容器中指定的应用终结时,容器也自动终止。只用参数时,由于没有分配伪终端,界面没有我们熟悉的命令提示符,但命令执行结果仍然可以返回。 容器是 Docker 又一核心概念。简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境...

    Benedict Evans 评论0 收藏0
  • 01-Docker新手入门初见篇

    摘要:了解开源的容器平台用于分享管理容器的平台使用客户端服务器架构模式。守护进程会处理复杂繁重的任务,例如建立运行发布你的容器。客户端和守护进程之间通过或者进行通信。 Step1:了解Docker 开源的容器平台:Golang https://github.com/docker/dockerDocker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台 -- D...

    oujie 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<