이 답변을 고려하십시오.
- 데이터베이스 이름은
app_schema
- 컨테이너 이름은
app_db
- 루트 비밀번호는
root123
컨테이너 내에 애플리케이션 데이터를 저장할 때 MySQL을 업데이트하는 방법
컨테이너를 잃으면 데이터를 잃을 수 있기 때문에 이것은 나쁜 습관으로 간주 됩니다. 좋지 않은 방법이지만 여기에 가능한 방법이 있습니다.
1) 데이터베이스 덤프를 SQL로 수행하십시오.
docker exec app_db sh -c 'exec mysqldump app_schema -uroot -proot123' > database_dump.sql
2) 이미지를 업데이트하십시오.
docker pull mysql:5.6
3) 컨테이너를 업데이트하십시오.
docker rm -f app_db
docker run --name app_db --restart unless-stopped \
-e MYSQL_ROOT_PASSWORD=root123 \
-d mysql:5.6
4) 데이터베이스 덤프를 복원하십시오.
docker exec app_db sh -c 'exec mysql -uroot -proot123' < database_dump.sql
외부 볼륨을 사용하여 MySQL 컨테이너를 업데이트하는 방법
외부 볼륨을 사용하는 것이 데이터를 관리하는 더 좋은 방법이며 MySQL을보다 쉽게 업데이트 할 수 있습니다. 컨테이너를 풀면 데이터가 손실되지 않습니다. docker-compose 를 사용 하여 단일 호스트에서 다중 컨테이너 Docker 응용 프로그램을 쉽게 관리 할 수 있습니다 .
1) docker-compose.yml
응용 프로그램을 관리하기 위해 파일을 작성하십시오 .
version: '2'
services:
app_db:
image: mysql:5.6
restart: unless-stopped
volumes_from: app_db_data
app_db_data:
volumes: /my/data/dir:/var/lib/mysql
2) docker-compose.yml
파일 과 동일한 폴더에서 MySQL을 업데이트 하십시오.
docker-compose pull
docker-compose up -d
참고 : 위의 마지막 명령은 MySQL 이미지를 업데이트하고 새 이미지로 컨테이너를 다시 만들고 시작합니다.