在Docker上玩轉PostgreSQL -- Mac篇
今天給大家帶來的話題是:*在Docker上玩轉PostgreSQL* (標題看到是不是有點小激動呢,這么高大尚的容器技術,讓"云"變得更容易)
以下是華麗的正文分隔線
google一下發現 Docker官方PostgreSQL鏡像 已經介紹了怎么制作PostgreSQL鏡像教程。
今天的分享是面向Mac用戶(悄悄的告訴你,小編俺也是第一次在Mac上玩起PostgreSQL On Docker)。
戰前準備
大家以熱烈的掌聲來歡迎神器: Docker Toolbox 登場!
</div>-
簡述
Docker Toolbox 的誕生是廣大 Mac 和 Windows 用戶玩轉Docker的福音。
再也不用再折騰 boot2docker 各種墻的 問題 ,俺是不會告訴你:運行boot2docker init會有一種讓你砸掉鍵盤的沖動,好吧,小編還真砸掉一塊了,-_-!!。
</div> </li>安裝Homebrew
</li>ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝Cask
</li>brew install caskroom/cask/brew-cask
安裝Docker Toolbox
</li> </ol>brew cask install dockertoolbox
運行Docker Quickstart Terminal.app
bash --login '/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh'
出現以下提示,說明Docker已經就緒
</div>## .
## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/
docker is configured to use the default machine with IP ... For help getting started, check out the docs at https://docs.docker.com</pre>
否則會提示
</div>Cannot connect to the Docker daemon. Is the docker daemon running on this host?
動手制作PostgreSQL Docker鏡像
-
編寫Dockerfile
這里 有介紹Dockerfile的最佳實踐以及 官方 有詳細的參考指南,請大家各自閱讀。
</div>翠花,上PG Dockerfile
$ cd ~;mkdir mypostgresql;cd mypostgresql $ cat Dockerfile
FROM ubuntu:16.04
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.list RUN apt-get update && apt-get -y -q install python-software-properties software-properties-common \ && apt-get -y -q install postgresql-9.4 postgresql-client-9.4 postgresql-contrib-9.4
USER postgres RUN /etc/init.d/postgresql start \ && psql --command "CREATE USER pger WITH SUPERUSER PASSWORD 'pger';" \ && createdb -O pger pgerdb
USER root RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.4/main/pg_hba.conf RUN echo "listen_addresses='*'" >> /etc/postgresql/9.4/main/postgresql.conf
EXPOSE 5432
RUN mkdir -p /var/run/postgresql && chown -R postgres /var/run/postgresql VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]
USER postgres CMD ["/usr/lib/postgresql/9.4/bin/postgres", "-D", "/var/lib/postgresql/9.4/main", "-c", "config_file=/etc/postgresql/9.4/main/postgresql.conf"]</pre></li>
制作Docker鏡像
</li>docker build --rm=true -t mypostgresql:9.4 .
運行PostgreSQL On Docker
</li>docker run -i -t -p 5432:5432 mypostgresql:9.4
測試
psql -h localhost -p 5432 -U pger -W pgerdb
結果顯示如下,說明鏡像制作成功了,細心的讀者可能會發現里面已經多了一個名叫pgerdb的數據庫
</div>Password for user pger: psql (9.4.2, server 9.4.5) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help.
pgerdb=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+-----------+---------+-------+----------------------- pgerdb | pger | SQL_ASCII | C | C | postgres | postgres | SQL_ASCII | C | C | template0 | postgres | SQL_ASCII | C | C | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | SQL_ASCII | C | C | =c/postgres + | | | | | postgres=CTc/postgres (4 rows)
pgerdb=#</pre></li> </ol>
搞定,以上就是今天要分享的PostgreSQL On Docker的話題,希望對大家有用,祝玩得開心~~
</div> </div> </code></code></code></code></code></code></code></code></code></code></code>本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!相關經驗
相關資訊
sesese色