docker安装MySQL

Docker安装MySQL

一、进行docker安装(若有docker,请跳过)

1、安装docker (这是厂家安装法。可能大一点)

yum install -y docker

2、开启docker服务

systemctl start docker

3、查看安装结果

docker version

4、设置开机启动

systemctl enable docker

5、查看docker服务状态

systemctl status docker

6、由于默认安装后的 Docker 环境在拉取 Docker 镜像时速度很慢,需要手动配置镜像加速源,提升获取 Docker 镜像的速度。
编辑配置文件:

vim /etc/docker/daemon.json

在其中加⼊加速镜像源地址:

按 ‘i’ 键进入Linux文件编辑模式,粘贴下方任意一个加速源:

网易加速源

{
 "registry-mirrors": [
 		"http://hub-mirror.c.163.com"
  ] 
}

腾讯加速源

{
   "registry-mirrors": [
       "https://mirror.ccs.tencentyun.com"
  ]
}

按左上角的esc键-》输入 方框中的内容 [ :wq ]

例如这里使用的是 网易 的加速源,其他像 阿里云 、 DaoCloud 这些也都提供加速源,按需选择即可。
加完加速地址后,重新加载配置⽂件,重启 docker 服务即可

systemctl daemon-reload
systemctl restart docker.service

然后就可以进行拉镜像操作。速度会较快。

补充:查看docker拉取的镜像的版本:

docker image inspect redis:latest | grep -i version

三、使用docker安装MySql

1、拉取musql镜像

docker pull mysql

2、查看docker本地镜像库

docker images

3、创建并启动一个mysql容器

docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql

-name :容器的名称,这里取名为mysql
-e 配置账户密码,这里为root账户,密码为root
-p 端口映射,本机的3306端口映射容器的3306端口
-d 启动容器后输出容器的id
最后的mysql表示镜像名字为mysql

注意!!!这里如果报错
(1)Error response from daemon: driver failed programming external connectivity on endpoint
解决方案:重启docker服务后再启动容器

systemctl restart docker
docker start 容器名

(2)Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use 参考文献
解决方案:
查看当前占用端口

netstat -tanlp

杀死进程

kill 占用端口进程的PID
kill 1330

然后重新启动容器

(3)Error response from daemon: oci runtime error: container_linux.go:247: starting container process 参考文献
解决办法:

yum update

然后重启docker

systemctl restart docker

然后启动容器mysql

docker start mysql

四、配置一下MySQL

1、从docker进入数据库

docker exec -it mysql bash

注意:mysql为容器名。因为前面创建容器时我设置容器名为为‘mysql’

2、登陆MySQL

mysql> mysql -uroot -p 回车
mysql> 输入密码

3、授权(以便于工具连接数据库)

查看一下:

mysql> use mysql;

mysql> select host from user where user='root';
结果:必须有%
      +------+
      | host |
      +------+
      | %    |
      +------+

如不是上述结果,执行下属操作

先执行:
mysql> ALTER user 'root'@'%' identified with mysql_native_password by 'DY822423YOU';
mysql> flush privileges;


不必要执行
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
mysql> ALTER user 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; 

4、设置开机重启

重启docker

systemctl enable docker

重启MySQL服务

docker update --restart=always 容器id或名字

五、防火墙问题(错误代码2003),需要开放对应端口(3306)或者关闭防火墙;

1、开放3306端口、 然后重启防火墙

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

命令含义:
     --zone #作用域
     --add-port=3306/tcp  #添加端口,格式为:端口/通讯协议
     --permanent   #永久生效,没有此参数重启后失效

​ 防火墙简单命令:

重启防火墙:firewall-cmd --reload
查看防火墙状态:firewall-cmd --state
关闭防火墙:systemctl stop firewalld.service
开启防火墙:systemctl start firewalld.service
禁止开机启动启动防火墙:systemctl disable firewalld.service

2、关闭防火墙(不建议)

关闭防火墙:systemctl stop firewalld.service(临时关闭)
禁止开机启动启动防火墙:systemctl disable firewalld.service

六、Navicat连接异常

1、报错:Navicat 不支持 caching_sha_password 加密方式

MySql 8 安装后采用 Navicat 进行连接可能会报 “navicat 不支持 caching_sha_password 加密方式” 错误。采用如下方式解决:

进入MySQL执行下述命令(进入方试上面有)

mysql> ALTER user 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;

补充:常用的docker命令

1. docker version
显示docker版本信息

2. docker info
显示docker系统信息

3. docker search
从Docker Hub查找镜像
docker search php 查找php的镜像

4. docker images
列出本地镜像

5. docker ps
列出所有在运行的容器信息
docker ps -a 显示所有的容器,包括未运行的

6. docker pull
从镜像仓库中拉取或者更新指定镜像
docker pull codehi/nginx:v1 拉取自己仓库的nginx镜像

7 docker start/stop/restart
启动/停止/重启容器
docker stop mynginx 停止运行中的容器mynginx
docker stop `docker ps -a -q` 停止所有容器

8. docker rm
删除一个或多个容器
docker rm mynginx 删除容器mynginx,正在运行中的容器需要stop后才能删除,或者使用强制删除。
docker rm -f mynginx 强制删除运行中的容器mynginx
docker rm `docker ps -a -q` 删除所有容器

9. docker rmi
删除本地一个或多个镜像
docker rmi codehi/nginx:v1 删除镜像codehi/nginx:v1
docker rmi -f codehi/nginx:v1 强制删除
docker rmi `docker images -q` 删除所有镜像

10. docker logs
获取容器的日志
docker logs -f mynginx 跟踪容器mynginx的日志,实时输出的。

11. docker history
查看指定镜像的创建历史
docker history codehi/nginx:v1 查看本地镜像codehi/nginx:v1的创建历史

12. docker login
登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker login 登录至Docker Hub,下一步会提示输入账号密码

13. docker logout
登出Docker Hub

14. docker push
将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker push codehi/nginx:v1 将本地镜像codehi/nginx:v1镜像推送到docker hub仓库中

15. docker commit
从容器创建一个新的镜像
docker commit -a "codehui" -m "test" 3218b3ad4e47 codehi/nginx:v1 3218b3ad4e47 保存为新的镜像codehi/nginx:v1,并添加提交人信息(codehui)和说明信息(test)

16. docker tag
标记本地镜像,将其归入某一仓库
docker tag nginx:v1 codehi/nginx:v2 将镜像nginx:v1标记为 codehi/nginx:v2 镜像

17. docker save
将指定镜像保存成 tar 归档文件
docker save -o codehi-nginx-v1.tar codehi/nginx:v1 将镜像codehi/nginx:v1生成codehi-nginx-v1.tar归档文件

18. docker load
从归档文件中创建镜像
docker load -i codehi-nginx-v1.tar 从镜像归档文件codehi-nginx-v1.tar创建镜像

19. docker export
将文件系统作为一个tar归档文件导出到STDOUT
docker export -o codehi-nginx-v1.tar mynginx 将容器mynginx保存为tar文件。

20. docker import
从归档文件中创建镜像
docker import codehi-nginx-v1.tar codehi-nginx-v1 从镜像归档文件codehi-nginx-v1.tar创建镜像,命名为codehi-nginx-v1

21. docker kill
杀掉一个运行中的容器
docker kill -s KILL mynginx 杀掉运行中的容器mynginx

容器
docker kill -s KILL mynginx 杀掉运行中的容器mynginx

你可能感兴趣的:(Docker相关,docker,mysql,容器)