PostgreSQL Service
来源:互联网 发布:必智软件 编辑:程序博客网 时间:2024/05/12 04:18
PostgreSQL Service
注:
这个例子环境是假设你已经运行了docker进程,更多详细信息请查看运行例子,如果你不喜欢sudo,你可以用户授权命令和docker组
在docker安装PostgreSQL
运行一个docker容器shell
sudo docker run -i -t ubuntu /bin/bash
升级依赖包
apt-get update
安装 python-software-properties, software-properties-common, wget and vim.
apt-get -y install python-software-properties software-properties-common wget vim
添加PostgreSQL的存储库,它包含了PostgreSQL最新稳定版本9.3。
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" > /etc/apt/sources.list.d/pgdg.listapt-get update
最后,我们安装PostgreSQL9.3
apt-get -y install postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3
现在,创建一个PostgreSQL超级用户,来创建数据库和其他工作,Vagrant’s 惯例角色名字是docker并且把docker的密码分配给它
su postgres -c "createuser -P -d -r -s docker"
创建一个测试数据库名字也叫docker所有者是上边我们创建的docker角色
su postgres -c "createdb -O docker docker"
调整PostgreSQL配置,远程连接到数据库。确保在 /etc/postgresql/9.3/main/postgresql.conf有以下行
host all all 0.0.0.0/0 md5
另外, 在 /etc/postgresql/9.3/main/postgresql.conf 取消监听地址,像这样:
listen_addresses='*'
注意
这对于开发postgresql设置是唯一的,请参考postgresql文档如何调整这些设置,以确保安全
退出
exit
创建一个容器,给它添加名字。容器 在bash中有提示;你可以本地使用docker ps -a获得。
sudo docker commit <container_id> <your username>/postgresql
最后通过docker运行postgresql服务
CONTAINER=$(sudo docker run -d -p 5432 \ -t <your username>/postgresql \ /bin/su postgres -c '/usr/lib/postgresql/9.3/bin/postgres \ -D /var/lib/postgresql/9.3/main \ -c config_file=/etc/postgresql/9.3/main/postgresql.conf')
使用psql PostgreSQL服务器(您将需要连接到PostgreSQL客户机上安装这台机器。对于ubuntu,使用sudo apt-get安装postgresql-client)。
CONTAINER_IP=$(sudo docker inspect -format='{{.NetworkSettings.IPAddress}}' $CONTAINER)psql -h $CONTAINER_IP -p 5432 -d docker -U docker -W
在这之前如果你需要,请创建用户或者数据库
psql (9.3.1)Type "help" for help.docker=# CREATE DATABASE foo OWNER=docker;CREATE DATABASE
另外,提交你的新创建的镜像到docker index
sudo docker loginUsername: <your username>[...]sudo docker push <your username>/postgresql
PostgreSQL服务自动启动
运行我们的镜像似乎很复杂,我们必须指定docker运行整个命令,让我们简化服务器启动时自动运行的命令。
sudo docker commit -run='{"Cmd": \ ["/bin/su", "postgres", "-c", "/usr/lib/postgresql/9.3/bin/postgres -D \ /var/lib/postgresql/9.3/main -c \ config_file=/etc/postgresql/9.3/main/postgresql.conf"], "PortSpecs": ["5432"]}' \ <container_id> <your username>/postgresql
从现在开始,只需要输入 docker run /postgresql ,PostgreSQL就会自动启动了
- PostgreSQL Service
- PostgreSQL 8.2.5 安装为 Windows 服务 (Service)
- mybatis+postgresql+insert返回主键,action,service侧
- postgreSQL
- PostgreSQL
- PostgreSQL
- postgresql
- postgresql
- PostgreSQL
- PostgreSQL
- PostgreSQL
- PostgreSQL
- PostgreSQL
- PostgreSQL
- PostGresql
- PostgreSQL
- PostgreSQL
- postGreSql
- leetcode之Maximum Product Subarray
- 信用卡剩余额度计算器(Credit Limit Calculator)
- jQuery Ajax 实例 ($.ajax、$.post、$.get)
- Linux中安装arm-linux-gcc-4.4.3
- 就是贴几张图
- PostgreSQL Service
- 生产环境下 nginx 和 tomcat的调优
- k-means 聚类算法
- 10个日常Docker使用技巧
- MySQL的if,case语句使用总结
- Spring The prefix "context" for element "context:annotation-config" is not bound.
- 【.Net码农,HTML/JS】在TextBox中按下回车键时执行按钮事件
- [Leetcode刷题]Add Two Numbers
- 奇淫巧技之 Gson