1. 程式人生 > >docker:二、(1)安裝docker-compose並統一拉取映象

docker:二、(1)安裝docker-compose並統一拉取映象

安裝docker-compose

方法:

#curl  -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname-s`-`uname -m` > /usr/local/bin/docker-compose

補:許可權問題處理

# chmod +x /usr/local/bin/docker-compose

檢視版本資訊

# docker-compose --version

但是此方法會經常因為網路的原因而無法安裝,網路通暢使用比較好。


待安裝完成後,執行查詢版本的命令,即可安裝docker-compose

docker-compose version

Compose使用例項

在本例中將會實現啟動nginx服務及一個數據卷容器,並將該資料卷容器作為nginx的靜態檔案

1.建立compose資料夾

sudo mkdir /usr/local/common

cd /usr/local/common

2.建立docker-compose.yml檔案

sudo touch docker-compose.yml

sudo vim docker-compose.yml

在docker-compose.yml中輸入以下內容:

nginx:

  restart: always

  image: jwilder/nginx-proxy:latest

  ports:

    - "80:80"

    - "443:443"

  volumes:

    - /etc/localtime:/etc/localtime:ro

    - /etc/timezone:/etc/timezone:ro

    - /var/run/docker.sock:/tmp/docker.sock:ro

    - ./certs:/etc/nginx/certs

 

logstash:

  image: logstash:latest

  command: logstash -f/config-dir/logstash.conf

  volumes:

    - ./logstash:/config-dir

    - /root/docker-data/logstash:/logstash-all

參考:http://blog.csdn.net/dream_broken/article/details/52314993

volumes

卷掛載路徑設定。可以設定宿主機路徑HOST:CONTAINER或加上訪問模式HOST:CONTAINER:ro)。
volumes:
- /var/lib/mysql
- cache/:/tmp/cache
- ~/configs:/etc/configs/:ro

掛載檔案,A:B  即:卷掛載路徑設定   /宿主機路徑:/訪問模式:ro

將A的內容掛載到B,實現資料分離,B映象在啟動時,通過掛載路徑讀取A所儲存的資料或配置檔案,

注:1、如果B容器中指定的資料夾不存在,會自動生成,

2、沒有:ro命令,在B中新建/生產檔案,會同步到A中

3、使用:ro指定該volume為只讀。注意:如果容器中指定的掛載目錄存在相同的檔案時,會被宿主機覆蓋掉

ports

暴露埠資訊。使用宿主:容器HOST:CONTAINER)格式或者僅僅指定容器的埠(宿主將會隨機選擇埠)都可以。

ports:

- "3000"
- "8000:8000"
- "127.0.0.1:8001:8001"
注:當使用 HOST:CONTAINER 格式來對映埠時,如果你使用的容器埠小於 60 你可能會得到錯誤得結果,因為 YAML 將會解析 xx:yy 這種數字格式為 60 進位制。所以建議採用字串格式。

如10.224.225.121:8084:8084,即宿主機埠8084對映到容器的8084埠

links

連結到其它服務中的容器。使用服務名稱(同時作為別名)或服務名稱:服務別名SERVICE:ALIAS格式都可以。
links:
- db
- db:database
- redis
使用的別名將會自動在服務容器中的 /etc/hosts 裡建立。例如:
172.17.2.186 db
相應的環境變數也將被建立。

external_links

連結到 docker-compose.yml 外部的容器,甚至並非Compose 管理的容器。引數格式跟 links 類似。
external_links:
- redis_1
- project_db_1:mysql
- project_db_1:postgresql

- common_mongo_1:mongoDb

即,將common_mongo_1 的名稱設定為  mongoDB,在其他容器都掛載宿主機的時候,可直接引用mongoDB,如service專案,mongo.host=127.0.0.1:27017可改為mongo.host=mongoDB

environment

設定環境變數。你可以使用陣列或字典兩種格式。只給定名稱的變數會自動獲取它在 Compose 主機上的值,可以用來防止洩露不必要的資料。
environment:
- RACK_ENV=development
- SESSION_SECRET

 environment:

NODE_ENV:production                            生產環境

serverA: 10.55.119.111                               伺服器A

serverB: 10.55.110.214                              伺服器B

localNetIP: 10.21.215.111                           本地伺服器

JVM_ARGS:-Xmx2500m                         JVM設定

3.啟動

docker-compose up -d

注:使用命令docker-compose ps檢視執行狀況

異常:

java.lang.IllegalStateException:Nexus work directory already in use: /sonatype-work

解決:  給對應檔案目錄新增許可權(這不是因為重複使用造成的) :

chown -R 200:200 /var/lib/nexus-data/
 

相關推薦

docker1安裝docker-compose統一映象

安裝docker-compose方法:#curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname-s`-`uname -m` > /usr/local/bin/docker-comp

常用演算法之1最小乘法1

深度學習發展到如今的地位,離不開下面這 6 段程式碼。本文介紹了這些程式碼的創作者及其完成這些突破性成就的故事背景。每個故事都有簡單的程式碼示例,讀者們可以在 FloydHub 和 GitHub 找到相關程式碼。 最小二乘法 所有的深度學習演算法都始於下面這個數學公式(

Win10下Docker學習1安裝

ner table 組成 高效率 down 提高 打開 cpu 其他人 Docker簡介 Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,

Docker學習1安裝

www. ati https 機制 生產環境 開機啟動 works tab 流行 1. Docker簡介 Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全

網路程式設計聊天室1

概述:通過網路程式設計來實現聊天室功能 第一步:建立服務端與客戶端並建立連線         服務端:         import java.io.IOException;     &n

微信小程式——學習筆記邏輯層1

邏輯層將資料進行處理後傳送給檢視層,同時接受檢視層的事件反饋。 用App()函式註冊一個小程式。 當小程式初始化完成時,會觸發 onLaunch(全域性只觸發一次) 當小程式啟動,或從後臺進入前臺顯示,會觸發 onShow 當小程式從前臺進入後臺,會觸發 onHide 當小程式發生指令碼錯

elasticsearch 口水篇1 安裝外掛

一)安裝elasticsearch 1)下載elasticsearch-0.90.10,解壓,執行\bin\elasticsearch.bat (windwos) 安裝成功! 二)外掛——head elasticsearch-head是一個elastics

python科學計算學習matplotlib繪圖1

matplotlib繪圖(1) 部落格地址:http://blog.csdn.net/ikerpeng/article/details/20370041     matplotlib是python另一個非常重要的工具包。使用它可以繪製精美的圖表。它學起來也是非常容易。下

ubuntu14.04.1安裝docker遇到的坑

安裝的操作步驟: Ubuntu Trusty 14.04 (LTS) 下面安裝docker 編者按:docker的發展非常迅速,apt源的更新往往比較滯後。所以docker官網推薦的安裝方式都是下

DB2入門1--安裝啟動連線

1.安裝資料庫 windows下的安裝 軟體下載直接是從官網下載的, 下載免費試用版學習一下: 1. 進入官網,點選“Free DB2 trials” 2. 然後選擇自己要下載的版本,我選擇的是社群試用版 3. 然後選擇電腦系統對應的版本:

學習EXTJS61安裝環境

www. 用法 執行 targe 路徑 繼續 環境 項目 com 1、官方下載地址: extjs6 GPL版:https://www.sencha.com/legal/gpl/ sencha cmd:https://www.sencha.com/

Openstack實踐1安裝部署第一個實例及neutron網絡

ipv6 dir hostname 鏈接 segment 訪問外網 繼續 過程 命名 版權聲明:本文為博主原創文章,歡迎轉載,轉載請註明作者、原文超鏈接 ,博主地址:http://www.cnblogs.com/SuperXJ/ 如何快速部署使用op

zabbix 系列 1安裝

系列 tail log blog pos 安裝 agent sdn zabbix 安裝server http://blog.csdn.net/xiegh2014/article/details/54988548 安裝 agent http://m.blog.csdn

LAMP架構1-安裝apache

Redhat apache 本篇博客為構築LAMP架構第一步,安裝apache實驗環境:redhat6.5實驗目的:安裝apache準備材料:redhat6.5系統 apache安裝包 實驗步驟:輸入tar xzvf http-2.4.2.tar.gz -C /opttar xzvf apr-1.4.

EOS Dapp開發1-基於Docker的開發環境搭建

rbo err 通過命令 plugin cat cti nec docker 反饋 隨著EOS主網的上線,相信基於EOS的Dapp開發會越來越多,查閱了很多資料相關的開發資料都不是很多,只能自己摸索,按照網上僅有的幾篇教程,先git clonehttps://github.

ceph1--安裝和部署

flatten true 6.5 集群部署 required ttr 後者 add 相關 本系列文章會深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安裝和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和邏輯結構 (4)Ceph

讀書筆記--《程式設計師的自我修養》第4章靜態連結1

本章以 如何將a.c檔案與b.c檔案連結成一個可執行檔案 來探討如何進行靜態連結 其中a.c和b.c檔案如下: a.c檔案 extern int shared; int main() { int a = 100; swap(&a,&shared);

javaweb學習筆記會話管理1

目錄 會話管理 1.概念 2.cookie技術 2.1 Cookie一般處理流程 2.2 Cookie類 會話管理 1.概念 一次會話: 開啟瀏覽器 -> 訪問一些伺服器內容 -> 關閉瀏覽器。(瀏覽器A給伺服器傳送請求,訪問web程式,該次會話就

零基礎入門學習Python1——安裝環境

人生苦短,我選Python! 大圖鎮樓:   很多初學Python的同學會有很多疑問,例如 : 學Python應該看什麼書啊? 學Python有沒有推薦速成的就業培訓機構? 學Python還是學R好啊? 學Python工作好找麼?   對

C#執行緒1什麼是執行緒?我們為什麼要使用執行緒?

最近在看公司上一個專案的原始碼,讓我感覺非常困惑的是,原始碼中使用了很多多執行緒的內容,所以給我的感覺是執行緒一直跳來跳去的,讓我感覺到很困惑。於是我就寫了這篇部落格,希望能夠更好的理解執行緒有關的內容。 一:什麼是執行緒 執行緒是和程序經常放在一起比較的兩個概念。按照我的理解,執行緒和程序