docker實踐之測試環境容器創建

一、創建基礎鏡像

測試環境所需:centos操作系統、jdk1.7、緩存服務器aerospike

1、pull centos鏡像

docker pull centos

2、通過centos鏡像創建我們的容器

  • 【方式A】創建容器,通過commit創建鏡像

    docker run -it centos

    創建容器,且進入容器
    ===此時,安裝jdk,安裝as(裝你需要安裝的東西,安裝完成后,記得把不再需要的安裝包及其他文件刪掉)

    docker commit 容器id centos/jdk1.7_xxx

    新的鏡像創建成果,通過docker images可查看

  • 【方式B】通過dockerfile創建

二、創建測試環境容器

1、提前規劃好容器需要暴露的端口號

舉例:
|-暴露端口-|-容器內部端口-|
|-1001-|9180-|

2、創建容器

docker run -d -p 暴露端口:容器內端口 --privileged=true --name 容器名稱 鏡像名稱
注:若容器內部不需要service命令啟動服務,可以不加--privileged=true參數

三、使用容器

1、查看容器信息

查看容器運行情況:docker ps -a
查看容器ip:docker inspect 容器ID |grep IPA

2、連接進入容器

【ssh】
默認密碼:123456
ssh root@容器ip
或ssh root@10.100.1.125 -p 6000
【nsenter】
PID=$(docker inspect --format "{{ .State.Pid }}" [容器id])
nsenter --target $PID --mount --uts --ipc --net --pid

3、文件傳輸

1)先把包傳到docker宿主機服務器的某個路徑上,再傳到容器里

scp -r 宿主機文件夾路徑 root@172.17.0.31:容器文件夾路徑
scp 宿主機文件路徑 root@172.17.0.31:容器文件夾路徑
舉例:scp -r /home/soft/ root@172.17.0.31:/home/
scp /home/soft/11.txt root@172.17.0.31:/home/

2)包在別的服務器上,傳到容器里

scp -P 6000 -r 文件夾路徑 root@宿主機服務器:容器文件夾路徑
scp -P 6000 文件路徑 root@宿主機服務器:容器文件夾路徑
舉例:scp -P 6000 -r /home/soft/ root@10.100.1.125:/home/
scp -P 6000 /home/soft/11.txt root@10.100.1.125:/home/

4、字符替換

sed -i "s/舊/新/g" `grep '舊' -rl /home/hornetq/`

舉例:
sed -i "s/172.17.0.34/172.17.0.7/g" `grep '172.17.0.34' -rl /home/hornetq/`

sed -i "s/10.100.1.150/172.17.0.15/g" `grep '10.100.1.150' -rl /home/hornetq/`

三、其他

1、后續新增端口映射:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 6305 -j DNAT --to-destination 172.17.0.31:5445
iptables-save
iptables -t nat -nvL | grep 172.17.0.31

寫在后面的話:docker推崇一個容器創建一個應用,這個實踐中容器里啟動了很多服務和應用,只是為了更方便測試。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,544評論 0 120
  • 五、Docker 端口映射 無論如何,這些 ip 是基于本地系統的并且容器的端口非本地主機是訪問不到的。此外,除了...
    R_X閱讀 1,800評論 0 7
  • 一、需求由于在測試環境中使用了docker官網的centos 鏡像,但是該鏡像里面默認沒有安裝ssh服務,在做測試...
    蝦米在海飄閱讀 962評論 0 3
  • Docker — 云時代的程序分發方式 要說最近一年云計算業界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,636評論 15 147
  • Geogebra是一款用于學習和教學的數學軟件,其易用性和可視化做得相當不錯。Tikz是LaTeX的一個宏包,熟悉...
    Mar1once閱讀 2,495評論 0 3