通过dockerfile制作postgresql12的单机docker镜像,并容器内启动ssh服务
时间: 2024-05-14 15:14:11 浏览: 210
以下是一个示例Dockerfile,可以用来制作PostgreSQL 12的单机Docker镜像,并在容器内启动SSH服务:
```
FROM ubuntu:18.04
RUN apt-get update && \
apt-get install -y postgresql-12 openssh-server && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN mkdir /var/run/sshd
RUN echo 'root:password' | chpasswd
RUN sed -ri 's/^#?PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -ri 's/^#?PasswordAuthentication\s+.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
```
此Dockerfile基于Ubuntu 18.04,使用apt-get安装了PostgreSQL 12和OpenSSH服务器。它还创建了一个名为“root”的用户,密码为“password”,并在容器内启用了SSH登录。最后,它将SSH端口22暴露给主机。
要构建此镜像,请在Dockerfile所在的目录中运行以下命令:
```
docker build -t postgresql12-ssh .
```
然后,您可以运行此镜像并通过SSH登录到容器中的“root”用户:
```
docker run -d -p 2222:22 postgresql12-ssh
ssh root@localhost -p 2222
```
在这里,我们将容器的SSH端口映射到主机的端口2222上,并使用“ssh”命令登录到容器中的“root”用户。您可以根据需要修改这些命令。
阅读全文