Назад | Перейти на главную страницу

Как изменить docker-compose.yml при автозапуске docker-compose

мой docker-compose.yml включал MySQL 5.6 и phpMyAdmin:

version: '3.3'
services:
  db:
    image: mysql:5.7
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'xxxx'
    ports:
      - '3306:3306'
    expose:
      - '3306'
    volumes:
      - xxx-db:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    environment:
      PMA_PORT: 3306
      PMA_HOST: db
      PMA_USER: xxxx
      PMA_PASSWORD: xxxx
      MYSQL_PASSWORD: xxxx
    ports:
    - "8081:80"
    restart: always
    depends_on: 
    - db

volumes:
  xxx-db:

Я тогда казнил

 sudo systemctl enable docker

чтобы он запускался при запуске компьютера.

Это было здорово! Но мне нужно было обновить MySQL до 5.7, поэтому я изменил 5.6 на 5.7 в файле конфигурации.

Внезапно я заметил, что предыдущая конфигурация все еще работает, когда я перезагружаю машину.

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                    NAMES
ed87e31b8a67        phpmyadmin/phpmyadmin   "/docker-entrypoint.…"   6 months ago        Up 35 minutes       0.0.0.0:8081->80/tcp     docker_phpmyadmin_1
6f03e022dfcd        mysql:5.6               "docker-entrypoint.s…"   6 months ago        Up 35 minutes       0.0.0.0:3306->3306/tcp   docker_db_1

Когда я вручную убиваю оба контейнера докеров и выполняю docker-compose up -d

Получаю правильные версии:

CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                               NAMES
d3006820b836        phpmyadmin/phpmyadmin:latest   "/docker-entrypoint.…"   4 hours ago         Up 3 seconds        0.0.0.0:8081->80/tcp                var_phpmyadmin_1
278cb25ece95        mysql:5.7                      "docker-entrypoint.s…"   4 hours ago         Up 3 seconds        0.0.0.0:3306->3306/tcp, 33060/tcp   var_db_1

Но когда я перезагружаю машину, возвращается старая конфигурация. Конечно, я попробовал выключить и снова включить :)

 sudo systemctl disable docker
 sudo systemctl enable docker

Как мне «очистить» старую конфигурацию?

Заранее спасибо!

Как ты убил контейнеры? Вы удалили их с помощью docker rm <container-id>? Вы также можете попробовать docker container prune после остановки этих ненужных контейнеров.

Я думаю, что если вы только остановили / убили их, то это причина, по которой они вернулись со старой версией.