一、創建基礎鏡像
測試環境所需: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推崇一個容器創建一個應用,這個實踐中容器里啟動了很多服務和應用,只是為了更方便測試。