通过dockerfile和postgresql12的离线安装包制作单机版的docker镜像,并容器内启动ssh服务
时间: 2024-05-02 07:21:55 浏览: 234
以下是制作单机版docker镜像的步骤:
1. 创建一个文件夹,命名为postgresql12,并在其中放置postgresql12的离线安装包和Dockerfile文件。
2. 编写Dockerfile文件,如下所示:
```
FROM ubuntu:20.04
# 安装必要的软件包
RUN apt-get update \
&& apt-get install -y openssh-server postgresql-12
# 创建postgres用户和密码
RUN useradd postgres --create-home --shell /bin/bash \
&& echo 'postgres:postgres' | chpasswd
# 启动ssh服务
RUN mkdir /var/run/sshd \
&& echo 'root:root' | chpasswd \
&& sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
&& sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config \
&& sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication no/' /etc/ssh/sshd_config \
&& sed -i 's/#ListenAddress 0.0.0.0/ListenAddress 0.0.0.0/' /etc/ssh/sshd_config
# 设置环境变量
ENV PGDATA=/var/lib/postgresql/12/main \
PGUSER=postgres \
PGDATABASE=postgres
# 暴露ssh端口
EXPOSE 22
# 启动ssh服务
CMD ["/usr/sbin/sshd", "-D"]
```
3. 在postgresql12文件夹中打开终端,运行以下命令来构建docker镜像:
```
docker build -t postgresql12 .
```
4. 构建完成后,运行以下命令来启动docker容器:
```
docker run -d -p 2222:22 --name postgresql12 postgresql12
```
其中,-d表示在后台运行容器,-p 2222:22表示将主机的2222端口映射到容器的22端口,--name postgresql12表示给容器命名为postgresql12。
5. 容器启动后,运行以下命令来连接到容器内的ssh服务:
```
ssh root@localhost -p 2222
```
输入密码即可登录到容器内部。
至此,单机版docker镜像制作完成。
阅读全文