docker上安装卸载mysql
一、docker上安装mysql
1、下载mysql镜像(以8.0.15为例)
docker pull mysql:8.0.15
2、下载好后,在opt下创建文件夹
命令:cd /opt/
命令:mkdir mysql_docker
命令:cd mysql_docker/
命令:echo $PWD
3、创建实例并启动
docker run --name mysqlserver
-v $PWD/conf:/etc/mysql/conf.d
-v $PWD/logs:/logs
-v $PWD/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456
-i -p 3306:3306 mysql:8.0.15
报错:
问题一:
4d7f7420b9123de6de8952a7e61f8614e19b2e2a11ca1e870e6b30ffc67924df
docker: Error response from daemon: driver failed programming external
connectivity on endpoint mysql (9d53678b0e62ec2668c2bff8ac1050e5c512727787e7afe2f8883cdd7fe611e7):
Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use.
解决:
netstat -tanlp //找到被占用的端口进程
kill 1506 //kill对应进程
问题二:容器名被占用,须移除或重命名后才能使用这个容器名
docker: Error response from daemon: Conflict. The container name "/mysql" is already in use by
container "4d7f7420b9123de6de8952a7e61f8614e19b2e2a11ca1e870e6b30ffc67924df".
You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
解决:
docker rm 4d7f7420b912 (这个是CONTAINER ID) //移除
//再创建新容器
docker run --name mysqlserver
-v $PWD/conf:/etc/mysql/conf.d
-v $PWD/logs:/logs
-v $PWD/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456
-i -p 3306:3306 mysql:8.0.15
//查看
docker ps -a
其他命令
//查看docker上的镜像
docker images
//查看docker上的实例情况
docker ps -a
docker ps //只能看到运行的实例
//重启实例
docker restart ebc54f9f98e2(CONTAINER ID)
//停止实例
docker stop ebc54f9f98e2(CONTAINER ID)
二、删除镜像
//移除一个镜像
docker rm ba51fc8d04e1(CONTAINER ID)
//删除docker上的镜像
docker rmi 7bb2586065cd(IMAGE ID)
注:移除和删除都要停止实例
三、进入mysql并开启远程
1、进入查看容器
cd /var/lib/docker/containers/
2、进入mysql容器,并登陆mysql
docker exec -it mysqlserver bash
mysql -uroot -p
Enter password:
3、开启远程访问
select now();
use mysql;
select host,user from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
大功告成!!!