mysql
查找镜像:
docker search mysql
拉取镜像:
docker pull mysql:版本号
然后创建一个文件夹用来存放mysql的配置文件,日志,以及数据等(也就是所谓的挂载目录,作用就是将此目录中的文件或文件夹覆盖掉容器内部的文件或文件夹)
mkdir mysql
在上面创建的目录下使用命令启动mysql容器
docker run -it -d -p 3306:3306 --name mysql -v $PWD/logs:/var/log -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.21 --lower_case_table_names=1
docker run -it -d -p 3306:3306 --name mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/var/log -v $PWD/data:/var/lib/mysql -v $PWD/data/mysql-files:/var/lib/mysql/mysql-files -e MYSQL_ROOT_PASSWORD=123456 docker.io/mysql:8.0.21
命令说明:
-d:表示后台运行,不加-d执行上面的命令你就会看到mysql启动的日志信息了
-p:表示端口映射,冒号左面的是我们的宿主机的端口,也就是我们虚拟机的端口,而右侧则表示的是mysql容器内的端口
--name:是我们给mysql容器取的名字
-v:表示挂载路径,$PWD表示当前目录下,冒号左面的表示我们宿主机的挂载目录,也就是我们虚拟机所在的文件路径,冒号右边则表是的是mysql容器在容器内部的路径,上面的命令我分别挂载了my.cnf(mysql的配置文件),如需使用配置文件的方式启动mysql,这里则需要加上,mysql的日志,还有mysql存放数据所在的目录
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
lower_case_table_names=1: 设置表名不区分大小写
连接数据库:
sudo docker exec -it mysql bash;
mysql -uroot -p123456;
创建新用户:
create user 'dev-mysql' identified by '123456';
授权:
GRANT ALL PRIVILEGES ON *.* TO 'dev-mysql';
刷新:
FLUSH PRIVILEGES;
mongo
启动:
docker run -p 27017:27017 -v $PWD/mongo:/data/db --name docker_mongodb -d mongo:版本号
ES
启动es:
docker run -id --name elasticsearch -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.9.0
##redis
启动 redis:
docker run -p 6379:6379 --name redis -v /root/redis/redis.conf:/etc/redis/redis.conf -v /root/redis/data:/data -d redis:latest redis-server /etc/redis/redis.conf --appendonly yes
##nacos
启动nacos:
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server:1.3.2