我尝试在容器中安装postgresql-9.3包含图像"ubuntu: 14:04“
第一步,我制作了图片"ubuntu: 14:04“
$ sudo Docker pull ubuntu:14.04第二步,我使用以下命令创建一个容器
$ sudo docker run -t -i ubuntu:14.04 /bin/bash第三步,我在一个包含"ubuntu:14.04“的容器中安装postgresql-9.3 (在一个包含ubuntu的容器中)
我试着进入postgresql可以,然后我试着取出容器,直接使用命令
# exit我试着重新登录,我安装的postgresql容器丢失了,能不能帮我解释一下原因?
Docker本身,是否运行在内核中?
Hardware> OS> Docker.
Docker概念:
Docker = images>容器
发布于 2015-11-25 18:36:31
您不应该在bash会话中安装任何内容。
由于docker使用UnionFS (union filesystem service),因此一旦您退出bash会话,当容器被移除时,任何修改都会丢失。
您可以尝试“退出”容器的docker commit,但这不是构建新映像的方式。
您要做的是创建一个名为Dockerfile的文本文件,其中的步骤与official postgres image Dockerfile类似(除非您想从ubuntu开始)。
它包括:
RUN apt-get update \
&& apt-get install -y postgresql-common \
&& sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf \
&& apt-get install -y \
postgresql-$PG_MAJOR=$PG_VERSION \
postgresql-contrib-$PG_MAJOR=$PG_VERSION \
&& rm -rf /var/lib/apt/lists/*您可以运行docker build -t mypostgres .:这将构建一个包含postgres的新映像。
换句话说,Dockerfile的作用是将安装步骤保存在一个声明性文本文件中,您可以随时从该文件构建映像。
发布于 2015-12-09 15:42:56
如果您发现使用bash而不是Dockerfile和build命令可以更容易地安装所有内容,那么您可以完全按照第一步和第二步所写的那样进行安装,但是在第三步之后,使用以下命令退出bash
后跟CONTROL + Q的是CONTROL + P
这将退出容器,使其继续运行并在使用后继续运行
docker commit mycurrentcontainer mynewimagewithpostgrestobeuseinfuture发布于 2018-09-06 13:59:35
这解决了这个问题。遵循以下步骤
Step1: Docker构建-t Mohan。step2: Docker run -it Mohan bash Mohan是您的容器名称
这是我的Dockerfile:
来自Ubuntu: 18.04
来自postgres: 9.6
运行apt-get update && apt-get install -q -y postgresql-9.6postgresql-client-9.6postgresql-contrib-9.6postgresql-client-common postgresql-common RUN echo postgres:postgres | chpasswd
运行pg_createcluster 9.6 main --start
CMD /etc/init.d/postgresql启动
CMD su -c "psql -c \“更改用户postgres密码' postgres ';\"”postgres
https://stackoverflow.com/questions/33913474
复制相似问题