mirror of
https://github.com/yeasy/docker_practice.git
synced 2025-08-03 22:42:08 +00:00
修正多個用詞
This commit is contained in:
@@ -23,7 +23,7 @@ root@ac6474aeb31d:~# ip a
|
||||
inet6 fe80::487d:68ff:feda:9cf/64 scope link
|
||||
valid_lft forever preferred_lft forever
|
||||
```
|
||||
這樣就可以把這個網路看成是一個私有的網路,通過 nat 連接外網,如果要讓外網連接到容器中,就需要做端口映射,即 -p 參數。
|
||||
這樣就可以把這個網路看成是一個私有的網路,透過 nat 連接外網,如果要讓外網連接到容器中,就需要做端口映射,即 -p 參數。
|
||||
|
||||
如果在企業內部應用,或者做多個物理主機的集群,可能需要將多個物理主機的容器組到一個物理網路中來,那麽就需要將這個網橋橋接到我們指定的網卡上。
|
||||
|
||||
@@ -32,8 +32,8 @@ root@ac6474aeb31d:~# ip a
|
||||

|
||||
|
||||
### ubuntu 示例
|
||||
下面以 ubuntu 為例創建多個主機的容器聯網:
|
||||
創建自己的網橋,編輯 /etc/network/interface 文件
|
||||
下面以 ubuntu 為例建立多個主機的容器聯網:
|
||||
建立自己的網橋,編輯 /etc/network/interface 文件
|
||||
```
|
||||
auto br0
|
||||
iface br0 inet static
|
||||
@@ -46,7 +46,7 @@ dns-nameservers 8.8.8.8 192.168.6.1
|
||||
```
|
||||
將 Docker 的默認網橋綁定到這個新建的 br0 上面,這樣就將這臺機器上容器綁定到 em1 這個網卡所對應的物理網路上了。
|
||||
|
||||
ubuntu 修改 /etc/default/docker 文件,添加最後一行內容
|
||||
ubuntu 修改 /etc/default/docker 文件,新增最後一行內容
|
||||
|
||||
```
|
||||
# Docker Upstart and SysVinit configuration file
|
||||
@@ -75,4 +75,4 @@ bridge name bridge id STP enabled interfaces
|
||||
br0 8000.7e6e617c8d53 no em1
|
||||
vethe6e5
|
||||
```
|
||||
這樣就直接把容器暴露到物理網路上了,多臺物理主機的容器也可以相互聯網了。需要註意的是,這樣就需要自己來保證容器的網路安全了。
|
||||
這樣就直接把容器暴露到物理網路上了,多臺物理主機的容器也可以相網路了。需要註意的是,這樣就需要自己來保證容器的網路安全了。
|
||||
|
@@ -7,8 +7,8 @@
|
||||

|
||||
|
||||
|
||||
Docker 占用資源小,在一臺 E5 128 G 內存的服務器上部署 100 個容器都綽綽有余,可以單獨抽一個容器或者直接在宿主物理主機上部署 samba,利用 samba 的 home 分享方案將每個用戶的 home 目錄映射到開發中心和測試部門的 Windows 機器上。
|
||||
Docker 占用資源小,在一臺 E5 128 G 內存的服務器上部署 100 個容器都綽綽有余,可以單獨抽一個容器或者直接在宿主物理主機上部署 samba,利用 samba 的 home 分享方案將每個使用者的 home 目錄映射到開發中心和測試部門的 Windows 機器上。
|
||||
|
||||
針對某個項目組,由架構師搭建好一個標準的容器環境供項目組和測試部門使用,每個開發工程師可以擁有自己單獨的容器,通過 `docker run -v` 將用戶的 home 目錄映射到容器中。需要提交測試時,只需要將代碼移交給測試部門,然後分配一個容器使用 `-v` 加載測試部門的 home 目錄啟動即可。這樣,在公司內部的開發、測試基本就統一了,不會出現開發部門提交的代碼,測試部門部署不了的問題。
|
||||
針對某個項目組,由架構師搭建好一個標準的容器環境供項目組和測試部門使用,每個開發工程師可以擁有自己單獨的容器,透過 `docker run -v` 將使用者的 home 目錄映射到容器中。需要提交測試時,只需要將代碼移交給測試部門,然後分配一個容器使用 `-v` 加載測試部門的 home 目錄啟動即可。這樣,在公司內部的開發、測試基本就統一了,不會出現開發部門提交的代碼,測試部門部署不了的問題。
|
||||
|
||||
測試部門發布測試通過的報告後,架構師再一次檢測容器環境,就可以直接交由部署工程師將代碼和容器分別部署到生產環境中了。這種方式的部署橫向性能的擴展性也極好。
|
||||
測試部門發布測試透過的報告後,架構師再一次檢測容器環境,就可以直接交由部署工程師將代碼和容器分別部署到生產環境中了。這種方式的部署橫向性能的擴展性也極好。
|
||||
|
@@ -4,7 +4,7 @@ Docker 容器在啟動的時候開啟單個程序,比如,一個 ssh 或者 a
|
||||
本小節將使用程序管理工具 supervisor 來管理容器中的多個程序。使用 Supervisor 可以更好的控制、管理、重啟我們希望執行的程序。在這裏我們演示一下如何同時使用 ssh 和 apache 服務。
|
||||
|
||||
### 配置
|
||||
首先創建一個 Dockerfile,內容和各部分的解釋如下。
|
||||
首先建立一個 Dockerfile,內容和各部分的解釋如下。
|
||||
```
|
||||
FROM ubuntu:13.04
|
||||
MAINTAINER examples@docker.com
|
||||
@@ -21,11 +21,11 @@ RUN mkdir -p /var/run/sshd
|
||||
RUN mkdir -p /var/log/supervisor
|
||||
```
|
||||
|
||||
這裏安裝 3 個軟件,還創建了 2 個 ssh 和 supervisor 服務正常執行所需要的目錄。
|
||||
這裏安裝 3 個軟件,還建立了 2 個 ssh 和 supervisor 服務正常執行所需要的目錄。
|
||||
```
|
||||
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
```
|
||||
添加 supervisord 的配置文件,並復制配置文件到對應目錄下面。
|
||||
新增 supervisord 的配置文件,並復制配置文件到對應目錄下面。
|
||||
|
||||
```
|
||||
EXPOSE 22 80
|
||||
@@ -47,7 +47,7 @@ command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFO
|
||||
配置文件包含目錄和程序,第一段 supervsord 配置軟件本身,使用 nodaemon 參數來執行。第二段包含要控制的 2 個服務。每一段包含一個服務的目錄和啟動這個服務的命令。
|
||||
|
||||
### 使用方法
|
||||
創建鏡像。
|
||||
建立鏡像。
|
||||
```
|
||||
$ sudo docker build -t test/supervisord .
|
||||
```
|
||||
@@ -60,6 +60,6 @@ $ sudo docker run -p 22 -p 80 -t -i test/supervisords
|
||||
2013-11-25 18:53:23,346 INFO spawned: 'sshd' with pid 6
|
||||
2013-11-25 18:53:23,349 INFO spawned: 'apache2' with pid 7
|
||||
```
|
||||
使用 `docker run` 來啟動我們創建的容器。使用多個 `-p` 來映射多個端口,這樣我們就能同時訪問 ssh 和 apache 服務了。
|
||||
使用 `docker run` 來啟動我們建立的容器。使用多個 `-p` 來映射多個端口,這樣我們就能同時訪問 ssh 和 apache 服務了。
|
||||
|
||||
可以使用這個方法創建一個只有 ssh 服務的基礎鏡像,之後創建鏡像可以使用這個鏡像為基礎來創建
|
||||
可以使用這個方法建立一個只有 ssh 服務的基礎鏡像,之後建立鏡像可以使用這個鏡像為基礎來建立
|
||||
|
@@ -1,11 +1,11 @@
|
||||
## 創建 tomcat/weblogic 集群
|
||||
## 建立 tomcat/weblogic 集群
|
||||
### 安裝 tomcat 鏡像
|
||||
準備好需要的 jdk、tomcat 等軟件放到 home 目錄下面,啟動一個容器
|
||||
```
|
||||
docker run -t -i -v /home:/opt/data --name mk_tomcat ubuntu /bin/bash
|
||||
```
|
||||
這條命令掛載本地 home 目錄到容器的 /opt/data 目錄,容器內目錄若不存在,則會自動創建。接下來就是 tomcat 的基本配置,jdk 環境變量設置好之後,將 tomcat 程序放到 /opt/apache-tomcat 下面
|
||||
編輯 /etc/supervisor/conf.d/supervisor.conf 文件,添加 tomcat 項
|
||||
這條命令掛載本地 home 目錄到容器的 /opt/data 目錄,容器內目錄若不存在,則會自動建立。接下來就是 tomcat 的基本配置,jdk 環境變量設置好之後,將 tomcat 程序放到 /opt/apache-tomcat 下面
|
||||
編輯 /etc/supervisor/conf.d/supervisor.conf 文件,新增 tomcat 項
|
||||
```
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
@@ -24,7 +24,7 @@ FROM mk_tomcat
|
||||
EXPOSE 22 8080
|
||||
CMD ["/usr/bin/supervisord"]
|
||||
```
|
||||
根據 Dockerfile 創建鏡像。
|
||||
根據 Dockerfile 建立鏡像。
|
||||
```
|
||||
docker build tomcat tomcat
|
||||
```
|
||||
@@ -56,7 +56,7 @@ CMD ["/usr/bin/supervisord"]
|
||||
|
||||
將本地磁盤映射到容器內部,它在主機和容器之間是實時變化的,所以我們更新程序、上傳代碼只需要更新物理主機的目錄就可以了
|
||||
|
||||
#### tomcat 和 weblogic 集群的實現
|
||||
#### tomcat 和 weblogic 集群的實做
|
||||
tomcat 只要開啟多個容器即可
|
||||
```
|
||||
docker run -d -v -p 204:22 -p 7003:8080 -v /home/data:/opt/data --name tm1 tomcat /usr/bin/supervisord
|
||||
@@ -70,7 +70,7 @@ docker run -d -v -p 206:22 -p 7005:8080 -v /home/data:/opt/data --name tm3 tomca
|
||||
|
||||
缺點是:
|
||||
* Docker 配置復雜了
|
||||
* 沒辦法自動擴展集群的計算容量,如需添加節點,需要在 administrator 上先創建節點,然後再配置新的容器 supervisor 啟動腳本,然後再啟動容器
|
||||
* 沒辦法自動擴展集群的計算容量,如需新增節點,需要在 administrator 上先建立節點,然後再配置新的容器 supervisor 啟動腳本,然後再啟動容器
|
||||
另外種方法是將所有的程序都安裝在 adminiserver 上面,需要擴展的時候,啟動多個節點即可,它的優點和缺點和上一種方法恰恰相反。(建議使用這種方式來部署開發和測試環境)
|
||||
```
|
||||
docker run -d -v -p 204:22 -p 7001:7001 -v /home/data:/opt/data --name node1 weblogic /usr/bin/supervisord
|
||||
|
Reference in New Issue
Block a user