docker-7 docker在阿裡雲的使用

来源:http://www.cnblogs.com/kafeikele/archive/2016/11/16/6067958.html
-Advertisement-
Play Games

在傳統模式中,開發團隊在開發環境中完成軟體開發,自己做了一遍單元測試, 測試通過,ᨀ交到代碼版本管理庫。運維把應用部署到測 試環境, QA 進行測試,沒問題後通知部署人員發佈到生產環境。 在上述過程中涉及到至少三個環境:開發、測試和生產。現實情況是,開發自測 沒問題,但到了測試或者生產環境程式無法運 ...


在傳統模式中,開發團隊在開發環境中完成軟體開發,自己做了一遍單元測試, 測試通過,ᨀ交到代碼版本管理庫。運維把應用部署到測 試環境, QA 進行測試,沒問題後通知部署人員發佈到生產環境。 在上述過程中涉及到至少三個環境:開發、測試和生產。現實情況是,開發自測 沒問題,但到了測試或者生產環境程式無法運行,讓開發團隊排查,經過長時間 排查最後發現是測試環境的一個第三方庫過時了。這樣的現象在軟體開發中很普 遍,已經不適用如今的快速開發和部署。docker可以滿足你的需求。

阿裡雲容器hub開發者平臺,可以去這裡下載需要的鏡像

https://dev.aliyun.com/search.html?spm=5176.1972343.0.1.MSG1P3

首先先查看內核版本,這一步很重要

# uname -a 

查看系統內核版本,docker要求內核版本為3.10以上,建議(不要在centos6.6上面安裝使用docker,有很多坑,我就是一個個踩過來的)

我使用的是阿裡雲的ECS centos 6.6 64位的,所以需要升級內很,內核版本升級的方法:

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

# yum --enablerepo=elrepo-kernel install kernel-lt -y

# vim /etc/grub.conf

default=0    把default=1 改為default = 0

最後重啟伺服器

開始安裝docker

# curl -sSL https://get.docker.com/ | sh  

# docker --version
Docker version 1.7.1, build 786b29d

# vim /etc/sysconfig/docker 
other_args="--registry-mirror=https://rr8hxwoy.mirror.aliyuncs.com -H tcp://0.0.0.0:235 -H unix:///var/run/docker.sock"  配置阿裡雲加速 docker pull會很快

啟動docker

# /etc/init.d/docker start
#  chkconfig docker on

 運行docker容器

# docker pull centos
latest: Pulling from centos
3690474eb5b4: Already exists 
af0819ed1fac: Already exists 
05fe84bf6d3f: Already exists 
97cad5e16cb6: Already exists 
Digest: sha256:934ff980b04db1b7484595bac0c8e6f838e1917ad3a38f904ece64f70bbca040
Status: Image is up to date for centos:latest

從阿裡雲私有鏡像倉庫拉取centos鏡像到本地,因為配置了阿裡雲鏡像加速,所以下載非常快,30秒鐘搞定。

# docker images

REPOSITORY                             TAG                 IMAGE ID            CREATED             VIRTUAL SIZE centos latest 97cad5e16cb6
12 days ago 196.5 MB

# docker run -d -it centos /bin/bash 運行centos容器

# docker ps -a 

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

969ad48e4085 centos "/bin/bash" 5 seconds ago Up 4 seconds jovial_torvalds

# docker exec -it 969a /bin/bash 進入容器 969a是容器的ID

Docker啟動容器命令在前面已經詳細的講過,不會的童鞋可以到我之前的博客看看

重點來了

java+tomcat在容器中應用

測試環境伺服器配置  centos 6.6 64位,4核處理器,8G記憶體

理論上可以跑16個java容器,因為每個容器消耗記憶體為500M左右,我在上面跑了8個java容器,另外跑了一個nginx做反向代理和一個redis,nginx 和redis都沒有使用docker

 

需要前提下載好jdk1.7.0.72和 tomcat ,並把他們放在和Dockerfile同一級目錄
vim Dockerfile
#This is My first Dockerfile #version
1.0 #Base image FROM centos:latest #MAINTAINER hh Wang #ADD ADD jdk1.7.0_72.gz /usr/local/ ADD biz-tomcat.tar.gz /usr/local/ #RUN RUN yum -y install wget gcc gcc-c++ make openssl openssl-devel net-tools vim RUN mkdir /docker/myapp/ROOT -p #ENV ENV JAVA_HOME /usr/local/jdk1.7.0_72 ENV JRE_HOME $JAVA_HOME/jre ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib ENV PATH $PATH:$JAVA_HOME/bin ENV CATALINA_HOME /usr/local/biz-tomcat EXPOSE 8080 CMD ["/usr/local/biz-tomcat/bin/catalina.sh","run"]


# docker build -t whh/biz_tomcat:v1 .   後面有一個點,一定要記住

docker run -it -d -v /mnt/docker/myapp/ROOT/biz:/docker/myapp/ROOT -v /var/log/biz-tomcat/logs:/usr/local/biz-tomcat/logs -p 9080:8080 --name biz whh/biz_tomcat:v1    

tomcat的根目錄要事先修改為自己需要的路徑,我這裡為docker/myapp/ROOT,把根目錄掛在在宿主機的/mnt/docker/myapp/ROOT/biz目錄下麵,當更新代碼的時候,直接把代碼傳到這個目錄,然後重啟一下容器就可以了,不需要把代碼上傳到容器裡面,那樣很麻煩。

[root@VM_159_91_centos biz]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
969ad48e4085 centos "/bin/bash" 21 minutes ago Up 21 minutes jovial_torvalds
f67257661e70 registry "/entrypoint.sh /etc 7 hours ago Up 7 hours 0.0.0.0:5000->5000/tcp high_darwin
4bcc381f5b9f whh/biz_tomcat:v1 "/usr/local/biz-tomc 9 hours ago Up 7 hours 0.0.0.0:9080->8080/tcp biz

# docker tag whh/biz_tomcat:v1 IP:5000/whh/biz_tomcat:v1   IP寫自己本機內網的IP或者公網IP都可以

# docker push IP:5000/whh/biz_tomcat:v1   推送到自己私有的倉庫,從其他的伺服器就可以直接pull下來使用

 

00:19:15 2016-11-16

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 雖然使用sqlserver去調用服務介面的情況比較少,但也可以去瞭解下對應的使用情況 一、首先要開啟組件的配置 二、調用webservice 1、調用webservice的時候建議使用fiddler去獲取一下發送數據過程用contenttype的類型以及調用介面的數據 2、使用sqlserver調用 ...
  • 由於目前目標檢測及分類等研究方向廣泛使用深度學習的方法,而多數神經網路框架(如caffe和tensorflow等)在windows下安裝極為困難,所以本文將記錄我安裝Ubuntu的部分筆記,並就出現過的一些問題提供適合新手的簡單辦法。本文所安裝ubuntu版本為14.04。 新手採用本文所介紹的安裝 ...
  • 今天使用kali的時候,由於虛擬機太多,密碼還不一樣,就忘記kali的登錄密碼了(我就是魚的記憶,只有七秒)。。。。 1.重啟kali,進入恢復系統,按e鍵進入編輯模式 2.游標移動到/boot/vmlinuz行修改singal前的ro為rw,並且在initrd=/install/initrd.gz ...
  • 虛擬機:VMware12.0 操作系統:Ubuntu16.04 LTS (新安裝系統) 已經按照網上的步驟: 1.安裝git: 2.安裝依賴包: 3.安裝Pyenv: 4.配置環境: 最終結果: ...
  • Atlas是360團隊弄出來的一套基於MySQL-Proxy基礎之上的代理,修改了MySQL-Proxy的一些BUG,並且優化了很多東西。而且安裝方便。配置的註釋寫的蠻詳細的,都是中文。英文不好的同學有福了。 Atlas官方鏈接: https://github.com/Qihoo360/Atlas/ ...
  • 由於工作需要,經常要使用遠程桌面連接到Windows伺服器。Windows的預設遠程桌面埠號為3389,為增加伺服器安全性,除了在硬體設備做規則外,還可以用Windows自帶的策略來增加Windows伺服器的安全下。 下麵以Windows2008R2為例,分別設置二種策略:(兩種任選一種,不能同時 ...
  • 在windows下,一個文件有:創建時間、修改時間、訪問時間。而在Linux下,一個文件也有三種時間,分別是:訪問時間、修改時間、狀態改動時間。 1、訪問時間,讀一次這個文件的內容,這個時間就會更新。比如對這個文件使用more命令。ls、stat命令都不會修改文件的訪問時間。 2、修改時間,對文件內... ...
  • 為什麼要使用 HTTPS ? 首先來說一下 HTTP 與 HTTPS 協議的區別吧,他們的根本區別就是 HTTPS 在 HTTP 協議的基礎上加入了 SSL 層,在傳輸層對網路連接進行加密。簡單點說在 HTTP 協議下你的網站是光著身子在奔跑,但到了 HTTPS 下你穿了一件衣服,別人看不到你的肌肉 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...