標籤:docker
(1)docker Dockerfile
FROM centos:centos6 #使用的鏡像名及其標記
MAINTAINER cxm<[email protected]> #建立此鏡像的使用者資訊
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
本文出自 “無人知曉” 部落格,請務必保留此出處http://cuixuemei.blog.51cto.com/8852728/1683457
dockerfile postgresql部署