docker安装mysql
默认已装好docker,需要拉取镜像可去dockerHub中选取需要拉取的镜像,本文以拉取并安装mysql为例。
复制拉取指定版本的命令,执行
docker pull mysql:5.7
待其拉取完成后再输入命令查看是否有拉取成功
docker images
建两个目录,让mysql存储的文件挂在的宿主机。其实也可以不创建目录,因为在启动容器时发现没有目录就会自动创建
mkdir -p ~/mysql/{data,logs}
以命令启动镜像
docker run -d --name mysql \
-v /mysql/data:/var/lib/mysql:rw \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3307:3306 mysql:5.7
-d 后台启动
--name 给启动的容器命名(镜像启动后就是容器)
-v 将容器中目录映射到宿主机,后面的rw意为无论在宿主机还是容器内,增删文件,修改文件都能互相生效,如果想多映射几个目录,可以多写几个-v。但是我本想把/etc/mysql目录映射出来,总是失败,不知为何
-e 指定用户名密码,此处MYSQL_ROOT_PASSWORD=123456意为将root用户的密码设置为123456
-p 指定端口,格式:宿主机端口:容器端口,在外部访问此处指定的宿主机端口即可访问到容器
最后的mysql:5.7意为repository:TAG
启动后,需要进入到mysql进行授权,运行远程登录才能够访问
docker exec -it mysql bash
进入到容器
mysql -uroot -p123456
登录mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
授权
FLUSH PRIVILEGES;
刷新权限
就可以在外部进行访问了
常用命令
再介绍几个常用的命令
docker ps
查看已启动的容器
docker ps -a
查看全部容器(包括已关闭的容器)
docker rm 容器id
根据容器id删除容器
docker ps -aq
-q表示只展示容器id,-aq所以就表示展示所有容器的id
docker rm `docker ps -aq`
删除所有容器。前提条件是所有容器都已关闭,即删除已关闭的所有容器,如果存在开启状态的容器,会删除失败\
docker stop 容器id
停止某容器
docker cp /mysql/cnf mysql:/etc/mysql/
把宿主机的文件拷贝到容器内,想把容器内文件拷贝出来的话交换下顺序即可
docker rmi 容器id
docker rmi repository:tag
删除镜像