我的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 容器并执行 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
我如何“清除”旧配置?
先感谢您!
答案1
你是如何杀死这些容器的?你用 删除了它们吗docker rm <container-id>
?你也可以docker container prune
在停止这些不需要的容器后再尝试。
我认为如果你只是阻止/杀死了他们,那么这就是他们带着旧版本回来的原因。