docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
常用配置参数:
- -e MYSQL_ROOT_PASSWORD=password
:设置 root 密码
- -e MYSQL_DATABASE=database_name
:创建初始数据库
- -e MYSQL_USER=user
和 -e MYSQL_PASSWORD=password
:创建新用户
- -p 3306:3306
:端口映射(主机端口:容器端口)
docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
创建自定义 my.cnf 文件,然后挂载到容器中:
docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
docker run --name some-mysql \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=my_database \
-e MYSQL_USER=user \
-e MYSQL_PASSWORD=password \
-e TZ=Asia/Shanghai \
-d mysql:tag \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
主服务器:
docker run --name mysql-master \
-e MYSQL_ROOT_PASSWORD=master_password \
-e MYSQL_REPLICATION_USER=repl \
-e MYSQL_REPLICATION_PASSWORD=repl_password \
-d mysql:tag \
--server-id=1 \
--log-bin=mysql-bin \
--binlog-format=ROW
从服务器:
docker run --name mysql-slave \
--link mysql-master:master \
-e MYSQL_ROOT_PASSWORD=slave_password \
-e MYSQL_REPLICATION_USER=repl \
-e MYSQL_REPLICATION_PASSWORD=repl_password \
-d mysql:tag \
--server-id=2
docker network create mysql-network
docker run --name some-mysql --network mysql-network -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
docker exec -it some-mysql bash
docker exec -it some-mysql mysql -uroot -p
导出:
docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /path/on/host/all-databases.sql
导入:
docker exec -i some-mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /path/on/host/all-databases.sql
建议使用特定版本标签而非 latest,例如:
docker pull mysql:8.0
通过以上配置,您可以根据需求灵活地部署和管理 Docker 中的 MySQL 服务。