2

1: докер-compose.ymlКак установить и запустить Postgress с помощью докер-compose.yml версии "1"

postgres96: 
    image: postgres:9.6 
    ports: 
    - "5432:5432" 
    volumes: 
    - ./Postgres/data:/var/lib/postgresql/data 
    env:  
    POSTGRES_PASSWORD: [email protected] 
    POSTGRES_USER: postgres 

2)$ Докер-составляют до &

postgres96_1  | LOG: database system was not properly shut down; automatic recovery in progress 
postgres96_1  | LOG: invalid record length at 0/1570D50: wanted 24, got 0 
postgres96_1  | LOG: redo is not required 
postgres96_1  | LOG: MultiXact member wraparound protections are now enabled 
postgres96_1  | LOG: database system is ready to accept connections 
postgres96_1  | LOG: autovacuum launcher started 

Но при тестировании от pg-admin-iv на окнах это показывает, что 'пользователь postgre ss не имеет пароля ',

Так что поток из файла YML прав, я хочу просто перейти к постгрессу и поместить данные из бокового докер-контейнера, так как это можно сделать?

ответ

2

Я хотел бы использовать названные объемы для этого вместо размещенных отображенных томов:

postgres96: 
    image: postgres:9.6 
    ports: 
    - "5432:5432" 
    volumes: 
    - data:/var/lib/postgresql/data 
    environment:  
    POSTGRES_PASSWORD: [email protected] 
    POSTGRES_USER: postgres 

Возможно у вас есть разрешение вопроса в папку.

Данные сохраняются в объеме за пределами контейнера. Затем проверьте с:

docker volume ls 

Также используют докер-компоновать как:

docker-compose up -d 

Вместо &

И

docker-compose logs -f 

Для получения дополнительной информации, это последняя часть моего журнала:

postgres96_1 | PostgreSQL init process complete; ready for start up. 
postgres96_1 | 
postgres96_1 | LOG: database system was shut down at 2016-11-14 21:05:51 UTC 
postgres96_1 | LOG: MultiXact member wraparound protections are now enabled 
postgres96_1 | LOG: database system is ready to accept connections 
postgres96_1 | LOG: autovacuum launcher started 
postgres96_1 | LOG: incomplete startup packet 

Привет

+0

Привет @Carlos, спасибо за ответ, я сделал изменения, как вы предложили, но пользователь «Postgres» по умолчанию не имеет разрешения на создание новой базы данных, так что другие вещи нужно добавьте или выполните в docker-compose.yml, предположим, что после того, как postgress-контейнер встал, нам нужно выполнить операцию DB, например, создать новый DB и т. д. – Dhairya

+0

HI, я удалил postgres_user и postgres_password из yml-файла, и теперь я могу создать новые DB и таблицы, но все данные хранятся в каталоге «pg_stat_tmp», который находится в папке с данными о процессе, поэтому, как перекрестно проверить, что данные хранятся вне контейнера докера, а новые данные добавляются в db и т. д. ..... ? – Dhairya

+0

Здравствуйте, уничтожьте контейнер 'docker-compose down -v', он уничтожит его, а также тома, но названные тома. Затем создайте новый контейнер, используя 'docker-compose up -d', и вы увидите свои таблицы там –