最近下載試用了Deepin 15.11x64系統,感覺非常不錯:界面漂亮,應用充足全面,細節部分很人性化,符合國人習慣。也有不足,比如桌面右鍵菜單選項不支持快捷鍵。
平時工作在docker下比較多,想試試docker在這個系統下運行如何。正好手頭有個ubuntu16的機器有安裝好的docker環境,想試試製作一個綠色版的docker系統跑在deepin 15.11下是否可行。綠色版docker好處不用多說,可離線安裝,解壓即可運行,各種參數配置、目錄自己說了算。
步驟:
1. deepin 15.11默認無法ssh登陸,先安裝openssh-server:
apt install openssh-server
2.在deepin的/opt/目錄下簡歷一個目錄 docker_green,統一存放docker相關的東西。
3.把ubuntu16上的docker相關二進制文件複製過來
4.創建幾個目錄,存放docker相關的文件:
最終目錄內文件和文件夾是這樣的:
5.新增幾個sh腳本:
start_docker.sh
#!/bin/bash
# 刪除docker0 虛擬網卡
# ip link delete docker0
CURRENT_DIR=$(cd $(dirname $0); pwd)
export PATH=$CURRENT_DIR:$PATH
# --pidfile==$CURRENT_DIR/var_run_docker \
# --bridge=eth0 \
# --bip=172.100.0.1/16 \
# --registry-mirror=https://registry.docker-cn.com &
# --registry-mirror=http://hub-mirror.c.163.com &
nohup ./dockerd -G root \
-H unix://./run/docker.sock \
-H tcp://0.0.0.0:2375 \
--bip=172.200.0.1/16 \
--pidfile=$CURRENT_DIR/run/docker.pid \
--exec-root=$CURRENT_DIR/var_run_docker \
--data-root=$CURRENT_DIR/var_lib_docker \
--registry-mirror=https://registry.docker-cn.com \
&
sleep 1
echo " "
./list.sh
mv /bin/docker /bin/docker_old
ln -s $CURRENT_DIR/bin_docker.sh /bin/docker
stop_docker.sh
#!/bin/bash
keywords="containerd.toml"
msg="$keywords stopping ... "
echo -e "\e[32m\e[1m"$msg"\e[0m"
PROCESS=`ps -ef|grep "$keywords"|grep -v grep|grep -v PPID|awk '{ print $2}'`
for i in $PROCESS
do
echo "Kill the $keywords process [ $i ]"
kill -9 $i
done
keywords="dockerd"
msg="$keywords stopping ... "
echo -e "\e[32m\e[1m"$msg"\e[0m"
PROCESS=`ps -ef|grep "$keywords"|grep -v grep|grep -v PPID|awk '{ print $2}'`
for i in $PROCESS
do
echo "Kill the $keywords process [ $i ]"
kill -9 $i
done
echo "==================================="
ps -ef|grep $keywords |grep -v grep
bin_docker.sh (docker是可以通過-H參數連接遠程機器看機器上跑了什麼容器的)
#!/bin/bash
# -H unix://./sock/docker.sock \
# -H tcp://0.0.0.0:2375 \
/opt/docker_green/docker \
-H tcp://0.0.0.0:2375 \
$*
list.sh:
#!/bin/bash
keywords="containerd.toml"
ps -ef|grep "$keywords"|grep -v grep
keywords="dockerd"
ps -ef|grep "$keywords"|grep -v grep
6.啓動docker服務:
./start_docker.sh
查看docker相關進程(dockerd和containerd)是否已經啓動:
./list.sh
ifconfig查看是否創建了docker0虛擬網卡。
7.測試安裝一個dockerui,方便管理鏡像和容器。
# -v /opt/docker_green/run/docker.sock:/var/run/docker.sock \
# --privileged
docker run -d \
--hostname dockerui --name dockerui \
-m 8G \
--restart always \
-p 9000:9000 \
uifd/ui-for-docker \
-H tcp://192.168.100.100:2375
dockerui可以通過-v掛接本機的docker.sock進行管理,也可通過-H參數連接遠程機器。當然前提是遠程機器開啓了2375管理端口。
8.測試:http://192.168.100.100:9000
9. 將/opt/docker_green目錄打包,在其他deepin15.11或ubuntu16機器上解壓到相同目錄,運行start_docker.sh,運行OK(系統內核相差較大的話估計夠嗆能跑起來)。
20200120補充:這裏有點問題,dockerui跑步起來,報錯:
# docker start dockerui
Error response from daemon: OCI runtime create failed: container with id exists: 76435ca893ed2e1874d63994278726363ee20807d40077b428e8c3f15720c0d3: unknown
原因待查。