乐趣区

关于docker:docker入门postgresql安装及可视化界面portainer使用

数据库作为我的项目必不少的一部分,小伙伴们无论在日常开发或者私活中都要接触,而且 oracle,postgresql 等数据库绝对更加的简单与繁琐,

1. 装置数据库

1. 拉取镜像

docker pull postgres:13.0 // 版本号本人把握

2. 启动容器

docker run --name postgres -e POSTGRES_PASSWORD=password -p 5432:5432 -v /usr/local/postgresql/data:/var/lib/postgresql/data -d postgres:13.0

参数解释:

  • run: 创立并运行一个容器;
  • –name postgres: 指定创立的容器的名字;
  • -e POSTGRES_PASSWORD=password: 设置环境变量,指定数据库的登录口令为 password;
  • -p 5432:5432: 端口映射将容器的 5432 端口映射到内部机器的 5432 端口;
  • -v /usr/local/postgresql/data:/var/lib/postgresql/data 将 /usr/local/postgresql/data 挂载到容器的 /var/lib/postgresql/data 文件中,俗话讲这两个文件夹领有雷同数据。
  • -d postgres 指定应用 postgres 作为镜像。

    登录的初始用户:postgres 登录的初始密码:password

    3. 查看容器

    docker ps 

4. 创立表空间

当 docker 操作 postgresql 新建表空间时,须要进入容器操作 并应用 postgres 用户创立文件夹

docker exec -it 容器 image /bin/bash
su - postgres
mkdir system


psql 数据库用户名称
create tablespace 表空间名 owner 拥有者 location '在容器中的路径名';
例:create tablespace systme owner admin location '/var/lib/postgresql/data/system';
倡议在每建设一个表空间下都在 /var/lib/postgresql/data 下新一个文件夹(本处新建了 system),因为新建时会在门路下新建一个 PG_13_日期的文件夹,有可能反复

5. 异样

如果抛出以下异样

changing ownership of '.': Permission denied 或者 chmod: changing permissions of '/var/lib/postgresql/data': Permission denied

须要敞开 SELinux

getenforce #查看 SELinux 状态 permissive 敞开状态 enforcing 开启状态
setenforce 0 #长期敞开 
setenforce 1 #长期开启 
 
// 永恒敞开
批改 /etc/selinux/config
SELINUX=enforcing 改为 SELINUX=disabled

当想要新建数据库中须要的文件夹时,肯定要是进入容器,并且应用固定用户 postgres 创立,否则就会抛出没有权限的异样

2. 装置应用可视化界面

这时候小伙伴就问了,好受每种中间件都须要间接命令吗,这样也不不便啊,所以 docker 也提供了可视化界面,这里举荐应用 portainer。能够在其中抉择容器类型后,间接装置。

 1. 下载镜像

docker pull portainer/portainer

2. 中文汉化

如果须要汉化能够在网盘上下载:

  • 链接:https://pan.baidu.com/s/1ExFI… \
  • 提取码:vsb4 \
  • 解压后 放在根目录的下,见下图。

    3. 启动

    docker run -d -p 9000:9000 --restart=always  -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data -v /public:/public --name portainer  portainer/portainer

    参数阐明:

  • -d:容器在后盾运行;
  • -p 9000:9000:宿主机 9000 端口映射容器中的 9000 端口
  • –restart 标记会查看容器的退出代码,并据此来决定是否要重启容器,默认是不会重启。
  • –restart=always:主动重启该容器
  • -v /var/run/docker.sock:/var/run/docker.sock:把宿主机的 Docker 守护过程 (Docker daemon) 默认监听的 Unix 域套接字挂载到容器中
  • -v /public:/public:把宿主机 public 文件夹映射到 docker 容器中
  • –name portainer:给容器起名为 portainer

    4. 登录

    请登录 ip:9000(上文启动的端口)首次登录须要设置明码。

    抉择 local

    而后就能够进入页面了。

退出移动版