Disgrobox运行Debian容器中ssh服务
备注
distrobox 运行的容器和 Host 主机使用同一个网络堆栈,所以如果Host主机运行了ssh服务占用了22端口,则容器中ssh服务需要配置使用其他端口,否则会因为端口冲突而无法启动容器内ssh服务!!!
我计划构建不同的容器来运行开发环境,其中 Distrobox运行VS Code(基于debian容器) 作为开发IDE,需要通过 VS Code远程开发-SSH模式 访问不同容器环境进行开发。所以,需要在 Disgrobox运行Debian 中构建ssh服务。
以下操作在 Debian 容器中进行
安装
openssh-server:
在debian中安装
oepnssh-serversudo apt update
sudo apt install openssh-server -y
修订 /etc/ssh/sshd_config 使得 sshd
监听不同端口以避免和Host主机sshd端口或其他容器sshd端口冲突:
调整容器中
sshd 服务端口#Port 22
Port 23
容器内启动服务使用
openrc的service命令:
容器内启动sshd
sudo service ssh start
测试没有问题之后,关闭容器:
停止容器
distrobox stop debian-dev
将运行容器提交(commit)为一个
debian-dev镜像:
将运行容器commit为
debian-dev 镜像# podman commit my_running_container my_custom_image:latest
podman commit debian-dev debian-dev:latest
移除旧的不带ssh服务的容器
debian-dev,然后重启创建容器,这次创建使用了内置 sshd 服务端讲讲debian-dev:
distrobox run 启动容器时运行ssh服务distrobox rm debian-dev # Remove existing container first
distrobox create --name debian-dev --image debian-dev:latest --init-hooks "sudo service ssh start" --additional-flags "-p 2222:22"