最近下载试用了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
原因待查。