Как перезапустить остановленный docker контейнер? - PullRequest
0 голосов
/ 16 апреля 2020

Я вытащил изображение postgres и создал контейнер docker с именем pgdb, который завершился. Вот что возвращает терминал после ввода docker ps -all:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
e62fdb45c727        postgres            "docker-entrypoint.s…"   19 hours ago        Exited (1) 14 minutes ago                       pgdb

, теперь я пытаюсь перезапустить свой контейнер, набрав docker exec -it pgdb bash, однако я получаю следующее сообщение об ошибке: Error response from daemon: Container e62fdb45c727baf9ca9d7b55401f870b35959a10f356a401f058f2e693adc2fd is not running

Я пытался прикрепить контейнер следующим образом:

random@random-142:~$ sudo docker start pgdb
pgdb
random@random-142:~$ sudo docker attach pgdb
You cannot attach to a stopped container, start it first

, но он также не работал. Кто-нибудь знает, как я мог go решить эту проблему? Я действительно в отчаянии.

РЕДАКТИРОВАТЬ

контейнерные журналы

random@random-142:~$ sudo docker logs pgdb
Error: Database is uninitialized and superuser password is not specified.
       You must specify POSTGRES_PASSWORD to a non-empty value for the
       superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run".

       You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all
       connections without a password. This is *not* recommended.

       See PostgreSQL documentation about "trust":
       https://www.postgresql.org/docs/current/auth-trust.html
Error: Database is uninitialized and superuser password is not specified.
       You must specify POSTGRES_PASSWORD to a non-empty value for the
       superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run".

       You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all
       connections without a password. This is *not* recommended.

       See PostgreSQL documentation about "trust":
       https://www.postgresql.org/docs/current/auth-trust.html

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Для перезапуска контейнера вы можете использовать эту команду

docker start -ai "container_name"
0 голосов
/ 16 апреля 2020

Журналы контейнера docker говорят сами за себя. Вам необходимо указать базу данных и пароль суперпользователя.

Добавьте следующие аргументы при запуске контейнера Postgres docker:

-e "POSTGRES_DB=YOUR_DB_NAME" -e "POSTGRES_PASSWORD=YOUR_PASSWORD"

Пример:

docker run -itd -p 5432:5432 -e "POSTGRES_DB=testdb" -e "POSTGRES_PASSWORD=password" --name pgdb postgres

Если вы не хотите добавлять пароль, используйте "POSTGRES_HOST_AUTH_METHOD=trust". Пример:

docker run -itd -p 5432:5432 -e "POSTGRES_DB=testdb" -e "POSTGRES_HOST_AUTH_METHOD=trust" --name pgdb postgres
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...