Docker搭建mysql

一、查询镜像

1.查询帮助

2.docker search mysql 查询mysql镜像

二、获取镜像(pull)

1.docker pull --help 查看帮助

注:TAG表示版本号,不说明,则latest最新版

2.docker pull mysql 获取镜像

镜像是采用分层存储的

查看本地镜像

docker image ls 查看本地镜像

创建、运行容器

为了防止每次多个容器启动时,IP变动的问题,我们先设置docker的静态ip

1.创建自定义网络

默认的docker网络

docker network ls 查看默认的docker网络

自定义网络:docker network create —driver bridge —subnet=自定义网络ip/16 —gateway=网关值 自定义网络名称

例如:docker network create —driver bridge —subnet=172.18.12.0/16 —gateway=172.18.1.1 wn_docker_net2.在Linux下创建文件夹与mysql容器进行挂载,防止删除后,重新创建容器数据丢失

Linux创建文件夹来存储数据

  1. root@localhost software]# mkdir mysql
  2. [root@localhost software]# cd mysql
  3. [root@localhost mysql]# mkdir 3306
  4. [root@localhost mysql]# cd 3306/
  5. [root@localhost 3306]# mkdir data
  6. [root@localhost 3306]# mkdir conf
  7. [root@localhost 3306]# mkdir mysql-files

将my.conf上传到conf文件夹下

linux与mysql容器的对应关系

3.创建mysql容器

  1. docker run -it \
  2. --name mysql \
  3. -p 3306:3306 \
  4. --privileged \      开放权限
  5. -e MYSQL_ROOT_PASSWORD=123 \
  6. --network wn_docker_net \     自定义网络的名字
  7. --ip 172.18.12.2 \            自定义网络的ip
  8. -v /etc/localtime:/etc/localtime \    解决时区问题  
  9. -v /usr/local/software/mysql/3306/conf/my.cnf:/etc/mysql/my.cnf \
  10. -v /usr/local/software/mysql/3306/data:/var/lib/mysql \
  11. -v /usr/local/software/mysql/3306/mysql-files:/var/lib/mysql-files \
  12. -d mysql

常用命令

docker inspect 容器名称

1docker -vdocker版本
2docker search 镜像名称查询镜像
3docker pull 镜像名称:tag拉取镜像
4docker ps查询活动的容器
5docker ps -a查询所有容器状态
6docker logs 容器名称查询容器中的日志
7docker rm 容器名称/ID删除容器
8docker stop 容器停止运行容器
9docker exec进入容器
10docker inspect查看容器详情

docker ps 活着的进程

docker ps -a 查询所有进程

docker logs 容器名称 查询日志

  1. [root@localhost ~]# docker logs mysqlx
  2. 2024-01-04 02:07:38+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
  3. 2024-01-04 02:07:38+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
  4. 2024-01-04 02:07:38+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
  5. 2024-01-04 02:07:38+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
  6. You need to specify one of the following:
  7. - MYSQL_ROOT_PASSWORD
  8. - MYSQL_ALLOW_EMPTY_PASSWORD
  9. - MYSQL_RANDOM_ROOT_PASSWORD

docker rm 容器名称/容器ID 删除容器

docker rm mysqlx 

docker stop/start/restart 容器  停止/运行正在运行的容器

docker exec 进入容器

mysqp -uroot -p密码 进入mysql

navicat连接数据库

失败的解决方案: linux开放3306端口。

 
  1. firewall-cmd --add-port=3306/tcp --permanent
  2. firewall-cmd --reload
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值