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;

在这里插入图片描述
大功告成!!!


版权声明:本文为qq_41510551原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。