|
|
@ -211,7 +211,7 @@ $ docker run --rm prakhar1989/static-site |
|
|
|
Nginx is running... |
|
|
|
``` |
|
|
|
|
|
|
|
> `--rm` 参数为删除已有的container若已经存在 |
|
|
|
> `--rm` 参数的作用是当container运行结束时系统自动删除该container |
|
|
|
|
|
|
|
#### 如果顺利的话,你的终端会出现`nginx is running...`,但是目前容器对我们来说是一个完全封闭的环境,我们并没有办法去访问`container`的端口 |
|
|
|
|
|
|
@ -219,3 +219,43 @@ Nginx is running... |
|
|
|
|
|
|
|
到此为止,我们已经部署了一个静态的`nginx container`但是并没有办法去访问,`docker`提供了许多接口去解决这个问题,我们可以通过添加参数的方式将`container`的端口或者文件夹映射到本地 |
|
|
|
|
|
|
|
#### docker提供了如下一些参数 |
|
|
|
|
|
|
|
| -d | 将container置于后台运行 | |
|
|
|
| :---------------------------: | :---------------------------------------------------: | |
|
|
|
| -p local_port:container_port | 将container 的某个端口映射到本地 | |
|
|
|
| -P | 将container所有正在监听的端口全部映射到本地的随机端口 | |
|
|
|
| -v local_path:contatiner_path | 将container的某个文件路径映射到本地 | |
|
|
|
|
|
|
|
#### `static-site`默认监听的`80`和`443`端口,我们使用上述参数尝试将它映射到本机 |
|
|
|
|
|
|
|
```bash |
|
|
|
$ docker run -d -P --name static-site prakhar1989/static-site |
|
|
|
|
|
|
|
e61d12292d69556eabe2a44c16cbd54486b2527e2ce4f95438e504afb7b02810 |
|
|
|
``` |
|
|
|
|
|
|
|
#### 查看docker给我们映射的端口 |
|
|
|
|
|
|
|
``` |
|
|
|
$ docker port static-site |
|
|
|
|
|
|
|
80/tcp -> 0.0.0.0:32769 |
|
|
|
443/tcp -> 0.0.0.0:32768 |
|
|
|
``` |
|
|
|
|
|
|
|
#### 可以看到`docker`将`container`的`80`和`443`分别映射到了本机的`32769`和`32768`两个端口上 |
|
|
|
|
|
|
|
####.打开浏览器,访问`http://localhost:32769`,得到如下页面: |
|
|
|
|
|
|
|
![static-web](img/assignment2/static-web.png) |
|
|
|
|
|
|
|
`**************作业3:尝试使用-v、--rm和-p等参数,创建static-site容器,并以自己的学号命名,将container的/usr/share/nginx/html文件夹映射到当前目录的html文件夹,并修改index.html文件,加入自己的姓名和学号,并将上述步骤和本地目录接口截图插入实验报告中***************` |
|
|
|
|
|
|
|
> Hint: |
|
|
|
> |
|
|
|
> 1.若提示continer正在运行中,可以使用`docker stop static-site && docker rm static-site`删除正在使用的容器并重新创建. |
|
|
|
> |
|
|
|
> 2. -v local_path请使用绝对路径 |
|
|
|
|
|
|
|
### |