一. 基本安装步骤
1.查询mysql镜像
docker search mysql
2.拉取对应版本镜像,如不指定默认最新版,此处下载5.7版本
docker pull mysql:5.7
3.运行镜像
#-p 指定端口 ; --name指定自定义名称; -e指定root密码(是root账户的密码);
#-d 后台运行 ; mysql:5.7 拉取的镜像
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
4.进入mysql控制台
#-it 就是-i -t ,一般同时使用,开启一个虚拟台链接mysql控制台(bash 或者 /bin/bash)
docker exec -it mysql:5.7 bash
二. 问题处理
1.更改端口映射,(例如,启动mysql是忘记配置端口映射)
方法1:
1.先停止容器
docker stop mysqlA
2.再停止docker
systemctl stop docker
3.修改docker配置文件,在这个json文件里,找到 PortBindings 对象,追加新端口参数
vi /var/lib/docker/containers/{container_id}/hostconfig.json
例如,追加一个3307端口映射:
"PortBindings": {
"3306/tcp": [
{
"HostIp": "",
"HostPort": "3306"
}
],
"3306/tcp": [
{
"HostIp": "",
"HostPort": "3307"
}
]
}
4.检查config.v2.json文件里是否也记录了端口映射,也要修改
"Config": {
....
"ExposedPorts": {
"8898/tcp": {}
},
....
},
"NetworkSettings": {
....
"Ports": {
"8898/tcp": [
{
"HostIp": "",
"HostPort": "8082"
},
{
"HostIp": "",
"HostPort": "8083"
}
],
5.启动docker服务
systemctl start docker
6.启动容器
docker start mysqlA
方法2:
本质就是创建新镜像重新启动,但是如果原来的容器已经配置了参数,那么这种方式可以保留参数(因为是用原来带参数的容器构建的镜像)。
1.先停止容器
docker stop mysqlA
2.将容器commit成为一个镜像
docker commit mysqlA mysqlB
3.运行容器
docker run -p 3306:3306 -d mysqlB
网友评论