Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

docker实战 - 安装pgadmin

  • 拉取指定版本镜像

    docker pull dpage/pgadmin4:6.11
    
  • 配置持久化目录

    sudo mkdir /var/lib/pgadmin
    
    • 修改所有者为5050,因为pgadmin运行在5050用户上
      sudo chown -R 5050:5050 /var/lib/pgadmin
      
    • 如果是旧版本升级,需要把原先的数据文件从旧容器拷贝出来,放到里面,再运行镜像挂载
  • 运行镜像

    docker run --name pgadmin611 -p 35437:443 --network test_db_default -v /var/lib/pgadmin:/var/lib/pgadmin --mount type=bind,source=/home/ubuntu/certs/*.lianinstruments.com.crt,target=/certs/server.cert,readonly --mount type=bind,source=/home/ubuntu/certs/*.lianinstruments.com.key,target=/certs/server.key,readonly -e 'PGADMIN_DEFAULT_EMAIL=account@17lianqin.cn' -e 'PGADMIN_DEFAULT_PASSWORD=xxxx' -e 'PGADMIN_ENABLE_TLS=1' -d dpage/pgadmin4:6.11
    
    • 配置名字
      • pgadmin611
    • 配置端口映射
      • 外网35437 映射到 内网443端口
    • 配置网络
      • 采用 test_db_default为名字的网络
      • 如果不配置,会采用默认的网络
    • 挂载volume
      • 把/var/lib/pgadmin持久化到本地机器
      • 当然,初始化时,如果本地机器有相应文件,也会拷贝到容器内,可用于迁移升级版本镜像
    • 挂载证书
      • 采用mount命令,选用bind模式
      • 指定source和target,并设置只读模式
      • 这里target是约定好的,就是根目录下certs文件夹
    • 配置参数
      • 包括管理员邮箱,管理员密码
      • 设置开启TLS,这样才能用https
    • 指定镜像
      • dpage/pgadmin4:6.11
  • 进入镜像

    docker exec -i -t pgadmin611 /bin/sh
    
    • 数据存储在/var/lib/pgadminpgadmin4.db(sqlite3数据库)内