本文已参与「新人创作礼」活动,一起开启掘金创作之路。
使用的是macOS系统,但是docker命令都是一样的。本地想简单连接个mysql数据库
,但是本地没有安装mysql,先不用远程服务器了,就用docker简单的起个mysql容器。已经安装Docker Desktop,mac比较简单,直接下载dmg安装即可。
已经安装好docker,可以用docker info
查看状态和信息,也可以查看菜单栏有小🐳的图标,即启动成功。
docker pull mysql // 直接下载了最新版本的
➜ ~ docker image ls 或者 docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 7b94cda7ffc7 6 days ago 446MB
docker run --name mysql -d -p 6666:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
// --name 为mysql的实例设置别名
// -d 以守护进程运行(后台运行)
// -p 6666为对外暴露的端口(随便选的),3306是内部端口
// -e MYSQL_ROOT_PASSWORD 设置mysql登录密码
// 最后的mysql是启动的镜像名称
➜ ~ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0d265e254add mysql:latest "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 33060/tcp, 0.0.0.0:6666->3306/tcp mysql
docker ps -a // 查看所有容器(运行中、未运行)
docker inspect mysql // 查看容器信息
如果忘记容器映射端口,可以通过docker port 容器名
查看,
➜ ~ docker port mysql
3306/tcp -> 0.0.0.0:6666
或者连接数据库端口报错时,检验端口是否开放,容器外命令行执行nc -vz -w 2 127.0.0.1 6666
➜ ~ nc -vz -w 2 127.0.0.1 6666
Connection to 127.0.0.1 port 6666 [tcp/*] succeeded!
启动成功后可以通过localhost:6666(暴露的端口),root和123456(密码)连接mysql数据库了,工具可以使用navicat或者DBeaver都行。
这里使用的DBeaver,填入容器对应的端口等信息,可以正常连接成功。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9nyPVYoc-1667278819179)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/10ff00c45ad240f2a0789b482f25761c~tplv-k3u1fbpfcp-watermark.image?)]
执行准备好的sql文件,成功导入数据。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-McB98a3w-1667278819181)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9f063754caa0432fa9a24fbcf57bab63~tplv-k3u1fbpfcp-watermark.image?)]
通过容器ID或容器名
停止启动容器,数据不会丢失。不过如果删除后数据丢失了,可以挂载文件。
docker stop mysql // 停止mysql(容器名)容器
docker start mysql // 启动被停止的mysql(容器名)容器
docker container exec -it mysql /bin/bash
// mysql是上面起的容器别名
bash-4.4# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.
show databases; // 查看数据库
create database test; // 创建数据库