docker的alpine中使用ssh的docker

创建一个容器

在爱快中添加一个 容器 ‘alpine-docker-cli-1’ 使用镜像 alpine:latest 高级设置挂载目录 /var/run/docker.sock 到容器的/var/run/docker.sock

配置容器

打开容器控制台

修改源更新安装ssh 密钥 启动文件等

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
echo "https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/main" > /etc/apk/repositories  && \
echo "https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/community" >> /etc/apk/repositories  && \
apk update && \
apk add --no-cache openssh tzdata && \ 
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config && \
ssh-keygen -t dsa -P "" -f /etc/ssh/ssh_host_dsa_key && \
ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key && \
ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key && \
ssh-keygen -t ed25519 -P "" -f /etc/ssh/ssh_host_ed25519_key && \
echo "root:admin" | chpasswd && \
echo "/usr/sbin/sshd -D" > /autoboot.sh && \
echo "tail -f /dev/null" > /autoboot.sh

上面的命令 是让我们能创建一个支持ssh的docker,但是还不是我们想要的

进阶,用docker里面的cli 操作宿主的docker

也就是 添加一行apk add –no-cache docker-cli

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
echo "https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/main" > /etc/apk/repositories  && \
echo "https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/community" >> /etc/apk/repositories  && \
apk update && \
apk add --no-cache docker-cli && \ 
apk add --no-cache openssh tzdata && \ 
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config && \
ssh-keygen -t dsa -P "" -f /etc/ssh/ssh_host_dsa_key && \
ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key && \
ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key && \
ssh-keygen -t ed25519 -P "" -f /etc/ssh/ssh_host_ed25519_key && \
echo "root:admin" | chpasswd && \
echo "/usr/sbin/sshd -D" > /autoboot.sh && \
echo "tail -f /dev/null" >> /autoboot.sh

我打包了一个基础的docker镜像

只安装了 openssh tzdata 时区 nano 默认用户名 root 密码 root ssh端口2222 tar.gz格式的,你可以自己导入到镜像 使用命令参考

1
cat alpine-sshd2222.tar.gz | docker import - alpine:sshd-autoboot.sh2222
1
docker run -i -t -d  --name alpine-mengzhong --network host  --privileged=true --restart=always   alpine:sshd-autoboot.sh2222   sh /autoboot.sh

下载地址: https://github.com/joyanhui/file.leiyanhui.com/raw/main/pve-unraid-kvm/alpine-sshd2222.tar.gz

以后可能也会打包一个debian的镜像,不过体积就比较大,可能会放到云盘

本文参考 https://cloud.tencent.com/developer/article/1683604

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus