distrobox docker_ubuntu:20.04 配置宝塔面板

distrobox docker_ubuntu:20.04 配置宝塔面板

【小?技巧】为外部应用解决动态库问题- Community - Deepin Technology

 deepinV23尝试使用distrobox运行软件- Community - Deepin Technology

安装distrobox   附件 有道云笔记

sudo apt install distrobox

如果源里面没有下载这个附件 进行手动安装 distrobox-1.5.0.zip

./install
echo 'export distrobox=$HOME/.local'    | sudo tee -a /etc/profile
echo 'export PATH=$distrobox/bin:$PATH' | sudo tee -a /etc/profile
source /etc/profile

安装 docker

sudo apt install docker.io
sudo usermod -aG docker $USER
sudo systemctl daemon-reload
sudo systemctl restart docker

配置国内 docker 镜像源

#修改/etc/docker/daemon.json,增加或者修改以下配置:
sudo su
vim /etc/docker/daemon.json

{
  "registry-mirrors": [
    "https://dockerproxy.com",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://ccr.ccs.tencentyun.com"
  ]
}

配置好以后重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

写一个 基于乌班图 ubuntu:20.04 的 Dockerfile 编译一个镜像,ubuntu:20.04的镜像对宝塔的兼容更好

配置好的镜像 以及Dockerfile 天翼云盘 珍藏美好生活 家庭云|网盘|文件备份|资源分享 (访问码:6vtb)

把下面内存保存到 Dockerfile 文本文件里

FROM ubuntu:20.04
MAINTAINER i8520
#定义环境变量
ENV PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
RUN export PATH=$PATH
#更新镜像 安装常用网络工具 SSH等
RUN apt update  -y && apt upgrade -y
RUN apt install -y init openssh-server vim libc-ares2 sudo p7zip-full curl zip unzip wget
RUN apt install -y iproute2 net-tools iputils-ping libsasl2-dev
RUN apt install -y libxml2-dev openssl* libcurl4-openssl-dev pkg-config
RUN apt install -y autoconf g++ make openssl libssl-dev libcurl4-openssl-dev
#安装 支持中文显示 安装 simsun.ttc 字体
RUN apt install -y fontconfig xfonts-utils language-pack-zh-hans
RUN apt install -y fonts-wqy-microhei fonts-wqy-zenhei fonts-arphic-ukai fonts-arphic-uming
#支持 AppImage 应用
RUN apt install -y psmisc fuse libdatrie1 libnss3 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0
COPY MYStart /bin
RUN chmod -R 755 /bin/MYStart
RUN mkdir -p /usr/share/fonts/my_fonts
COPY simsun.ttc /usr/share/fonts/my_fonts
RUN cd /usr/share/fonts/my_fonts
RUN mkfontscale
RUN mkfontdir
RUN fc-cache -fv
RUN echo 'export LANG=zh_CN.UTF-8' >> $HOME/.bashrc
RUN echo 'export LANG=en_US.UTF-8' >> $HOME/.bashrc
RUN echo 'source /etc/profile' >> $HOME/.bashrc
RUN localedef -i en_US -f UTF-8 en_US.UTF-8
RUN /bin/bash -c "source $HOME/.bashrc"
CMD ["/bin/bash"]

利用 Dockerfile 制作一个新 镜像 ,cd 到保存Dockerfile文件的目录。

或者在有Dockerfile的目录右键在终端打开

# --no-cache 表示不缓存
# -t ubuntubt:1.0 表示镜像名字ubuntubt版本1.0
docker build --no-cache -t ubuntubt:1.0 .

使用 distrobox 创建容器 使用刚才编译好的镜像 ubuntubt:1.0

MYubuntuBT 就是创建的容器名称 容器名称最好是大小写字母组合不要和应用程序名一样

distrobox create --image ubuntubt:1.0 MYubuntuB

进入容器

distrobox enter MYubuntuBT

安装宝塔面板 宝塔面板下载,免费全能的服务器运维软件 这里查看安装代码

安装好以后 ssh配置看这里 有道云笔记

#设置容器root密码 这样就可以通过SSH连接到容器 IP 就是宿主机 IP 账号root密码就是你设置的
sudo passwd root
#启动宝塔
sudo bt 1
#修改宝塔帐号密码
sudo bt 5
sudo bt 6
#修改宝塔端口
sudo bt 8
#查看宝塔面板地址
sudo bt 14

这一步是在宿主机操作的,直接启动容器内的宝塔和相关服务

echo 'export LANG=zh_CN.UTF-8' >> $HOME/.bashrc
echo 'export LANG=en_US.UTF-8' >> $HOME/.bashrc
echo 'source /etc/profile' >> $HOME/.bashrc
source $HOME/.bashrc
#重启电脑(宿主机)/虚拟机
reboot

一条命令启动 宝塔,这依赖于 MYStart 脚本,只需要在电脑(宿主机)开机的时候运行一次

# MYStart启动服务类的脚本,
# MYubuntuBT 就是创建的容器名称
distrobox-enter -n MYubuntuBT -- "sudo /bin/MYStart"

非服务类程序

有些程序在 MYubuntuBT 容器里 distrobox-export --app AppName

不会在宿主机创建快捷方式,或者创建了也启动不了,手动创建一个启动器文件就可以

把下面代码保存到 xxx.desktop 文件里

[Desktop Entry]
Name=名字
Name[zh_CN]=名字
Comment=说明
Terminal=false
Type=Application
Categories=Graphics;
StartupNotify=true
Actions=Configure;Capture;
Exec=bash -c "distrobox-enter -n MYubuntuBT -- /程序路径/程序名字"
Icon=图标路径

distrobox-enter -n MYubuntuBT -- "/程序路径/程序名字"

注意事项

如果宿主机开启的防火墙需要在防火墙放行相应的端口,有可能在容器内也需要

还有就是,在distrobox创建容的时候,【容器名字】不能和【容器内安装的程序名字一样】,不然很麻烦