[afterCode] docker 速成班 3: 使用 container 中的功能

經過docker 將 container 執行起來了,不是爲了看看容器的狀態,而是想使用 container 中的功能.介紹兩種方式來使用容器中的功能.javascript

經過端口訪問 container 中的服務

經過端口的方式來使用 container 提供的服務是最簡單的了.只要經過 -p 或者 --publish 選項來向宿主機暴露服務端口就能夠了.css

好比咱們能夠這樣在後臺啓動一個 redis 服務.並將 container 中的 redis 的服務端口6379映射到宿主機上的7788端口.html

docker run -d -p 7788:6379 redis

在宿主機上,咱們能夠經過下面的命令訪問 容器中的服務java

redis-cli -p 7788
redis 127.0.0.1:7788>

這裏須要注意的是 -p 選項經過:來區別宿主機上的端口和容器中的端口; :前的是宿主機的, :後的是容器的. 若是有多個端口須要映射的話能夠屢次使用 -p 選項,例如: -p 3008:80 -p 7788:6379 就是將容器中的80,6379端口,分別映射到宿主機的3008和7788端口node

經過磁盤映射

例如咱們使用 nginx web服務器來提供個靜態資源的 web 服務; 靜態資源是在宿主機上的, 咱們就能夠採用磁盤映射的方式來向 container 提供咱們的靜態資源. 例如當前路徑就是本 blog 的 靜態 web 資源.nginx

$ls _site
CNAME      css        imgs       node.js    request.js typescript
aftercode  editor     index.html nodejs     stack      unittest
cat2       feed.xml   javascript prototype  test       youtube

咱們就能夠經過 -v 選項來將當前目錄的絕對路徑映射到 container 中的 /usr/share/nginx/html.這樣 nginx 啓動的時候使用的就是咱們 _site 文件夾中的靜態資源了;固然了最後還要將 nginx 的 80 映射到宿主機的3009端口上,才能在本地 http://127.0.0.1:3009 端口訪問 web 服務.web

docker run --rm -v $PWD/_site:/usr/share/nginx/html -p 3009:80 nginx

經過 -v 選項主要注意的就是: 宿主機須要映射的地址必須使用絕對地址來指定; 若是須要映射多個路徑的能夠使用和映射端口的方式經過多個 -v 來完成映射.redis

但願你們喜歡.docker

相關文章
相關標籤/搜索