通过dockerfile制作基于postgresql12安装包部署单机docker镜像,并容器内启动ssh服务
时间: 2024-04-29 11:23:39 浏览: 15
以下是Dockerfile文件的示例,用于制作基于PostgreSQL 12安装包部署单机Docker镜像,并在容器内启动SSH服务:
```
FROM ubuntu:20.04
# 更新apt源
RUN apt-get update && apt-get install -y openssh-server postgresql-12
# 创建sshd需要的目录
RUN mkdir /var/run/sshd
# 设置postgres用户密码为123456
RUN echo 'postgres:123456' | chpasswd
# 复制postgres配置文件到容器内
COPY ./pg_hba.conf /etc/postgresql/12/main/
COPY ./postgresql.conf /etc/postgresql/12/main/
# 启动SSH服务
CMD ["/usr/sbin/sshd", "-D"]
```
在Dockerfile所在的目录中创建pg_hba.conf和postgresql.conf文件,用于配置PostgreSQL。然后构建镜像:
```
docker build -t postgres-ssh .
```
使用以下命令运行容器:
```
docker run -d -p 5432:5432 -p 22:22 postgres-ssh
```
其中,-d参数是让容器在后台运行,-p参数是将容器的5432端口映射到主机的5432端口,以便可以在主机上访问PostgreSQL服务。同时,-p参数将容器的22端口映射到主机的22端口,以便可以通过SSH远程连接到容器。
接下来,您可以使用以下命令连接到容器内的PostgreSQL服务:
```
psql -h localhost -U postgres -d postgres
```
您还可以使用以下命令通过SSH连接到容器:
```
ssh root@localhost -p 22
```
请注意,容器内默认的root用户密码为空。如果需要,您可以使用以下命令为root用户设置密码:
```
passwd root
```