10 подписчиков
В ответ на пост
Упаковал запуск этого докер-образа который выставляет наружу ssh-порт в один криповый bash-скрипт (удобно ansible-плейбуки проигрывать, Ctrl+D, вверх, Enter и снова имеем чистую «виртуалку», на которую можно снова чего-нибудь попробовать накатить):
#!/bin/bash
IMAGE_NAME="ubuntu-with-sshd"
CONTAINER_NAME="ubuntu-with-sshd"
SSH_PORT=9022
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
if [[ "$(docker images -q $IMAGE_NAME 2> /dev/null)" == "" ]]; then
cat > $DIR/Dockerfile <<- EOM
FROM ubuntu:22.04
RUN apt update && apt install -y openssh-server python3 && \\
(echo "chown -R root:root /root/.ssh /etc/ssh && service ssh start" >> /root/init-file)
EOM
docker build -t $IMAGE_NAME $DIR
fi
if [ ! -d "$DIR/.ssh" ]
then
mkdir $DIR/.ssh
cp ~/.ssh/id_rsa.pub $DIR/.ssh/authorized_keys
fi
if [ ! -d "$DIR/ssh" ]
then
docker run --name $CONTAINER_NAME $IMAGE_NAME
docker cp $CONTAINER_NAME:/etc/ssh $DIR/ssh
docker rm $CONTAINER_NAME
fi
docker run -it --rm --name $CONTAINER_NAME \
-p $SSH_PORT:22 \
-v $DIR/.ssh:/root/.ssh \
-v $DIR/ssh:/etc/ssh \
$IMAGE_NAME /bin/bash --init-file /root/init-file
Около минуты
20 сентября 2022