мой 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
после остановки этих ненужных контейнеров.
Я думаю, что если вы только остановили / убили их, то это причина, по которой они вернулись со старой версией.