安装Docker
首先我们去官网下载Docker。然后直接安装,安装后如果会报以下错误
更加报错提示,猜测可能是我们使用的wsl2版本老了,需要我们自己手动更新一下,我们根据提示去微软官网下载最新版的wsl2安装后即可正常打开。
最后安装完成后,在命令行运行下面的代码出现下面内容,那么就证明docker安装成功。
// 查看版本
docker -v
docker run hello-word
Docker常见命令
- 运行
docker ps
查看容器运行状态 - 运行
docker kill mysql1
关掉容器 - 运行
docker container start mysql1
开启刚关掉的容器 - 运行
docker rm mysql1
删掉容器,必要时docker ps可加-f选项 - 运行
docker run
启动新容器
注意:
Docker运行的容器,默认不会持久化,如果删掉了容器,那么数据也就没有了,当然它可以数据持久化,可以自行搜索【docker mysql 数据目录】
Docker迁移
首先在其他盘新建一个Docker目录 然后将C:\Program Files\Docker
下面的目录复制到新建的文件夹,最后删除 C盘的Docker文件夹,执行下面的命令
mklink /j "C:\Program Files\Docker" "D:\Software\Docker"
然后将image镜像包.docker
文件夹也复制到新建的文件夹。
然后执行下面代码
mklink /j .docker D:\\Software\\Docker\\.docker
C:\Program Files\Docker是Docker的默认安装位置,D:\Software\Docker是你希望它安装的位置,一旦设立了联接,Docker的安装器会以为它安装在了C:\Program Files\Docker但实际上所有文件都被安装在了D:\Software\Docker
注1:希望它安装的位置可以是任意硬盘上已有的盘符,但是C:\Program Files里不能有Docker文件夹否则会出现文件夹已存在的警告并联接失败。
注2:需要在管理员模式下运行。
用 Docker安装数据库
在官网有安装MySQL的教程
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
name是容器的名字
tag是版本号:5.7.34
MYSQL_ROOT_PASSWORD是密码
还可以端口映射:-p 3306:3306
如果端口被占用 请切换其他端口
最终命令,这是我安装的MySQL5.7.34版本
docker run --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -p 8888:8888 -d mysql:5.7.34
这样就安装好了呀。
连接数据库
链接数据库
docker exec -it mysql1 bash
这里进入了 Linux系统
然后进入数据库
mysql -uroot -p
输入密码 123456 就成功进入数据库啦
尝试用数据库的操作
// 查看所有数据库
show databases;
就出现上面这个。
数据库的增删改查
创建数据表
create database db_user;
show databases;
use db_user;
create table user_tbl(
user_id INT NOT NULL AUTO_INCREMENT,
user_name VARCHAR(30) NOT NULL,
user_address VARCHAR(100) NOT NULL,
PRIMARY_KEY(user_id)
)ENGINE=innoDB DEFAULT CHARSET=utf8;
展示数据表结构
show columns from user_tbl;
describe user_tbl;
新增数据名
alter table user_tbl ADD birth date;
重命名表名
rename table user_tbl to user;
添加数据
insert into user values (
2022 ,'ADE','USA','1995-2-12');
查询全部数据
select * from user;
select * from fruits where s_id NOT IN (101,102);
select * from fruits where f_name in ('apple','banana');
select * from fruits where f_name like ('%b');
删除数据
delete from user where user_id = 2022;
node.js里面的mysql
数据库的使用 utf8mb4,在创建数据库是确定他的编码。
// 创建数据库
CREATE DATABASE IF NOT EXISTS test_db CHARACTER SET `utf8mb4` COLLATE `utf8mb4_general_ci`;
docker-machine ip