使用 Docker 運行 MySQL 容器

運行mysql

docker search mysql
docker pull mysql:5.7
docker images

# 掛載容器內的目錄到主機中的指定目錄
docker run -d \
-p 3310:3306 \
-v /home/mysql/conf:/etc/mysql/conf.d \
-v /home/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql01 \
mysql:5.7 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

測試sql

# 鏈接容器的MySQL
$ docker run -it --rm mysql:5.7 mysql -hmysql01 -uexample-user -p

# 進入容器
$ docker exec -it mysql01 bash

# 查看容器日誌
$ docker logs mysql01

查看全部可用的選項列表:docker

$ docker run -it --rm mysql:5.7 --verbose --help

使用文件加載環境變量

$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-root -d mysql:5.7

僅支持MYSQL_ROOT_PASSWORDMYSQL_ROOT_HOSTMYSQL_DATABASEMYSQL_USER,和MYSQL_PASSWORD數據庫

以指定用戶身份運行容器

$ mkdir data
$ ls -lnd data
drwxr-xr-x 2 1000 1000 4096 Aug 27 15:54 data
$ docker run -v "$PWD/data":/var/lib/mysql --user 1000:1000 --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7

備份數據庫

$ docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql

還原數據庫

$ docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/on/your/host/all-databases.sql

參考:https://registry.hub.docker.c...bash

相關文章
相關標籤/搜索