fdgsdf 发表于 2015-8-11 08:37:26

dockerfile postgresql部署

(1)docker Dockerfile
FROM centos:centos6    #使用的镜像名及其标记
MAINTAINER cxm<cxm@schoolface.cn>#建立此镜像的用户信息

RUN yum -y update; yum clean all#运行的命令
RUN yum -y install sudo epel-release; yum clean all

#Sudo requires a tty. fix that.
RUN sed -i 's/.*requiretty$/#Defaults requiretty/' /etc/sudoers

# Install pgdg repo for getting new postgres RPMs
RUN rpm -ivh http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm#安装数据库的centos源

# Install Postgres Version 9.4
RUN yum install postgresql94-server postgresql94 postgresql94-contrib postgresql94-plperl postgresql94-devel -y --nogpgcheck

VOLUME /var/lib/pgsql/9.4#磁盘
EXPOSE 5432    #对外开放5432端口

RUN yum -y install vim
RUN yum -y install make gcc

ENV PATH /usr/pgsql-9.4/bin:$PATH#添加环境变量


注:docker有缓存功能,重新执行时,已经执行过的命令不再重复执行,如果不需要这项功能,可以自己修改。


(2)docker build
docker build -t cxm:pg94 --rm .
#--rm是在执行完后删除缓存,.指的是Dockerfile的存放路径是当前路径的docker文件下


(3)docker-server
docker run --privileged -d --name pg94_run -p 15432:5432-v /pg94/bash_history:/root/.bash_history --volumes-from=pg94_data --link redis_run:redis-v /pg94/src:/src-v /pg94/local:/usr/local cxm:pg94 /sbin/init
注释:
--privileged#使用该参数,container内的root拥有真正的root权限
-d#后台运行
--name#给运行的容器命名
-p 宿主端口:容器端口#指定容器的端口在宿主机的端口,即访问宿主机的端口即可访问到容器的端口
-v 宿主路径:容器路径   #与-p差不多,只不过这里指的是文件
--volumes-from=pg94_data#挂载容器所有的卷
--link redis_run:redis    #连接到另一个容器(name:alias)
cxm:pg94#镜像名
/sbin/init#执行的终端命令


(4)docker-client
docker exec -it pg94_run /bin/bash

页: [1]
查看完整版本: dockerfile postgresql部署