- 安装镜像
docker pull mysql
- 启动一个image:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
- 进入image配置:
docker exec -it some-mysql bash
- 进入mysql:
mysql -h 127.0.0.1 -P 3306 -u root -p
- 创建数据库:
CREATE DATABASE guoguangsportmysql;
- 创建用户并赋予权限
⚠️CREATE USER 'guoguangsportmysql'@'%' IDENTIFIED BY 'guoguangsportmysql';
GRANT ALL PRIVILEGES ON guoguangsportmysql.* TO 'guoguangsportmysql'@'%';
FLUSH PRIVILEGES;
不小心已经启动了数据库并且配置过了库表用户,需要暴露端口,但是不想删掉volumn重新开,否则需要重新配置mysql
需要修改 镜像暴露端口
放弃了!重新生成一个吧
MacOS 执行screen tty提示screen is terminatingReference:
https: //www.jianshu.com/p/6aefed2be1c7
https: //stackoverflow.com/questions/39739560/how-to-access-the-vm-created-by-dockers-hyperkit
https: //github.com/docker/for-mac/issues/4822
问题描述
Mac 系统需要动态修改 docker 容器参数时, 需要运行
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
但是显示
[screen is terminating
]
解决方案
docker run -it --privileged --pid=host justincormack/nsenter1
copy 命令,pull justincormack/nsenter1 from dockerhub.
cd /var/lib/docker/containers && ls
此时进入 justincormack/nsenter1 容器, 列出所有容器 ID, 根据所需容器 ID 进入文件夹
修改暴露端口 config.v2.json
关键字: ExposedPorts,
"ExposedPorts": {
"80/tcp": {}
}
修改如下:
"ExposedPorts": {
"80/tcp": {},
"1234/tcp": {}
}
修改端口映射 hostconfig.json
关键字: PortBindings
"PortBindings": {
"80/tcp": [
{
"HostIp": "",
"HostPort": "80"
}
]
}
修改如下: "PortBindings": {
"80/tcp": [
{
"HostIp": "",
"HostPort": "8080"
}
],
"1234/tcp": [
{
"HostIp": "",
"HostPort": "1234"
}
]
}
注意事项
所有修改开始前必须停止目标容器
所有修改完成后必须重新启动 Docker, 然后启动容器, 否则所有修改会被还原.
查询容器 ID 命令 docker inspect {docker name} | grep Id
失败了上面的操作,镜像被弄没了docker run --name some-mysql -p outport:innerprot -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag