docker部署Mysql时遇到的坑

Docker常用命令

  1. docker命令相关
  • 启动docker服务:systemctl start docker
  • 重启自动启动:systemctl enable docker
  • 查看docker版本:docker version
  • 查看docker仓库mysql版本:docker search mysql 
  1. docker compose 常用命令
  • 启动docker集合:docker-compose up -d
  • –no-color 不使用颜色来区分不同的服务的控制输出
  • 列出项目中目前的所有容器: docker-compose ps
  • docker-compose stop
  • –rmi type,删除镜像,类型必须是:all,删除compose文件中定义的所有镜像;local,删除镜像名为空的镜像
  • -v, –volumes,删除已经在compose文件中定义的和匿名的附在容器上的数据卷
  • –remove-orphans,删除服务中没有在compose中定义的容器
  • docker-compose logs -f -t --tail=10 查看实时日志,最近10条

  1. 镜像命令相关
  • 拉取镜像并生成容器:docker run tomcat
  • 删除镜像:docker rmi ID/名称
  • docker中下载了哪些镜像:docker images
  • 取镜像到本地:docker pull 镜像名称
  • 镜像的导出:decker save -o 导出的路径 镜像ID
  • 镜像的导入:decker load -i 文件名称
  • 修改镜像的名称:docker tag 镜像ID/名称 新名字:新版本号

  1. 容器命令相关:
  • 启动容器:docker run 镜像ID/名称

常用参数:  -d:没有界面,后台运行

-it:i输入,t终端

--name:指定容器名称

-p:用于映射linux的端口号和容器的端口号

例:docker run -d -p 8011:8080 --name first_tomcat tomcat:9.0

  • 查看容器:docker ps [-qa]

ps:是进程状态的意思

-a:查看全部容器,包括没运行的容器

-q:只查看容器的ID

  • 查看容器的日志:docker logs -f ID

-f:以滚动的方式查看容器日志的最后几行

例子:

1.查看指定时间后的日志,只显示最后100行:

docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID

2.查看最近30分钟的日志:

docker logs --since 30m CONTAINER_ID

3.查看某时间之后的日志:

docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID

4.查看某时间段日志:

docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37"

  • 进入容器内部:docker exec -it 容器ID bash

exec:执行的意思

-it:交互式运行容器

bash:默认的linux的默认界面shell

注:tomcat目录下,删除webapps文件夹,然后把webapps.dist改名为webapps

  • 停止容器:docker stop 容器ID
  • 停止所有容器:docker stop $(docker ps -qa)
  • 重启容器:docker start 容器ID

docker restart 容器ID

  • 删除容器:docker rm 容器ID
  • 删除所有容器:docker rm $(docker ps -qa)

配置问题

sudo docker run --name mysql -d -p 3306:3306 --restart unless-stopped -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
 docker logs --tail 50 --follow --timestamps mysql

容器创建成功但一直重启,查看报错发现是挂载时错误

sudo mkdir -p /etc/mysql/conf.d

手动创建下删除旧容器,重新执行创建mysql容器。成功启动

DBeaver连接连接问题

外部访问权限未开

进入容器中  docker exec -it mysql bash

登录mysql:   mysql -u root -p密码

use mysql; 
select host,user from user;
update user set host = '%' where user = 'root';
flush privileges; --刷新权限
select host,user from user;

云服务器开启3306端口

DBeaver配置更改

Public Key Retrieval is not allowed 报错,该属性改为true即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值