docker 入坑4
搭建mongodb
$ docker run --name mongo -it -d -p : -v ~/docker-data/mongo:/data/db -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD= mongo
$ docker exec -it mongo /bin/bash
# mongo -u admin -p 123456
然后我们添加一个用户:
db.createUser({
{
user: "spring",
pwd: "",
roles: [
role: "readWrite", db: "demo"
]
}
})
在java的配置文件:
spring.data.mongodb.uri=mongodb://spring:123456@localhost:27017/demo
搭建redis
$ docker run --name redis-server -it -d -p : -v ~/docker-data/redis:/data/db redis redis-server --appendonly yes
$ docker exec -it redis-server redis-cli
搭建mysql
1、拉取官方镜像(我们这里选择5.7,如果不写后面的版本号则会自动拉取最新版)
docker pull mysql:5.7 # 拉取 mysql 5.7
docker pull mysql # 拉取最新版mysql镜像
2、一般来说数据库容器不需要建立目录映射
sudo docker run -p : --name mysql -e MYSQL_ROOT_PASSWORD= -d mysql:5.7
- –name:容器名,此处命名为
mysql - -e:配置信息,此处配置mysql的root用户的登陆密码
- -p:端口映射,此处映射 主机3306端口 到 容器的3306端口
- -d:源镜像名,此处为 mysql:5.7
3、如果要建立目录映射
duso docker run -p : --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD= \
-d mysql:5.7
- -v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录
4、连接mysql
sudo docker exec -it mysql /bin/bash
mysql -uroot -p123456

5、使用java的jdbc测试
import java.sql.*;
public class JdbcTest {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try
{
//加载数据驱动
Class.forName("com.mysql.jdbc.Driver");
//通过驱动管理类获取数据库连接
connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf-8","root","");
System.out.println("创建数据库连接成功");
//定义sql语句?表示占位符
String sql = "select * from user where username = ?";
//获取预处理statement
preparedStatement = connection.prepareStatement(sql);
//设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
preparedStatement.setString(,"zhangsan");
//向数据库发出sql查询,查询出结果集
resultSet = preparedStatement.executeQuery();
//遍历查找结果集
while (resultSet.next()){
System.out.println(resultSet.getString("id") + ""
+ resultSet.getString("username"));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//释放资源
if(resultSet != null){
try{
preparedStatement.close();
}catch (SQLException e){
e.printStackTrace();
}
}
if(connection != null){
try{
connection.close();
}catch (SQLException e){
e.printStackTrace();
}
}
}
}
}
5、数据库:

6、驱动
mysql-connector-java-5.1.36
7、在idea中添加lib文件夹,在文件夹lib中添加驱动的jar包,然后

下面的方式待验证:
1、在宿主机上创建/mysql/data和/mysql/conf
2、docker run --name mysql -d --rm -v /home/mantishell/mysql/conf:/etc/mysql/conf.d -v /home/mantishell/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
3、ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
docker 入坑4的更多相关文章
- Docker 入坑教程笔记
Docker 入坑教程笔记 视频网址B站:点这里 查询命令 man docker 简单启动和退出 docker run --name [容器名] -i -t ubuntu /bin/bash 交互启动 ...
- Docker入坑系列(二)
Docker入坑系列(二) 上一篇我们为Docker创造了一个良好的生活环境,这一篇我们就开始让Docker活起来. 安装Docker ok,原文地址在这里. 当然,我只是自己翻译了一下而已- -跟着 ...
- Docker入坑系列(一)
Docker入坑系列(一) 引用嘛,当然是来引用别人说的东西啦. Docker 是一个开源项目,诞生于 2013 年初,它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux ...
- Docker入坑指南之RUN
总有一些场景,我们需要自己制作一个镜像,可以快速还原环境,又不想被其他因素干扰镜像的纯净,这个时候,就可以选择Docker了,启动便捷,镜像还原很快捷,除了上手不容易. 最近入坑研究了一番,小有心得, ...
- 一、docker 入坑(win10和Ubuntu 安装)
前言 终究还是绕不过去了,要学的知识真的是太多了,好在我们还有时间,docker 之前只闻其声,不曾真正的接触过,现在docker 越来越火,很多公司也都开始使用了.所以对于我们程序员而言,又得修炼一 ...
- docker 入坑3
查看镜像 docker images [OPTIONS] [REPOSITORY[:TAG]] -a, --all=false -f, --filter=[] --no-trunc=false -q, ...
- docker 入坑2
上一节我们安装好了docker,那么这节我们讲一下docker基本命令使用 查看版本 $ sudo docker --version 返回:Docker version 18.09.0, build ...
- docker 入坑1
本文是记录一下学习docker的过程,希望可以帮助到入门的朋友. 系统:ubuntu16.04 docker:18.09 打开官网:https://docs.docker.com/install/li ...
- Docker入坑指南之EXEC
容器启动之后,如果我们需要进入容器内修改配置,比如mysql修改启动配置 我们启动的附加参数是不是shell,这个时候就可以用docker exec了,docker除了对image参数以外,大部分命令 ...
随机推荐
- GUI引发的一场脑部大战|wine、wsl、mono、gtk、qt
没写完不想写了,先发布吧,这就是一个引子. 在春天种下一颗种子---- GUI引发的一场脑部大战|wine.wsl.mono.gtk.qt 思路开拓了,方法一下子就来了 wine可以运行大部分Wind ...
- 手把手实例对比String、StringBuilder字符串的连接效率及StringBuilder和StringBuffer线程安全的比较
一.字符串连接的效率问题 使用String连接字符串时为什么慢? 小知识点 java中对数组进行初始化后,该数组所占的内存空间.数组长度都是不可变的. 创建一个字符串,为字符串对象分配内存空间,会耗费 ...
- NoSql数据库Redis系列(6)——Redis数据过期策略详解
本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存sessi ...
- 2019软工实践_Alpha(4/6)
队名:955 组长博客:https://www.cnblogs.com/cclong/p/11882079.html 作业博客:https://edu.cnblogs.com/campus/fzu/S ...
- MySQL免安装配置步骤
此方式为直接解压压缩包安装MySQL 1.下载相关压缩包 官网下载地址:https://dev.mysql.com/downloads/mysql/ 下载后将压缩包解压至自己想要的文件路径即可 2.新 ...
- Python绘制3D图形
来自:https://www.jb51.net/article/139349.htm 3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行 ...
- k8s 传参给docker env command、args和dockerfile中的entrypoint、cmd之间的关系
[k8s]args指令案例-彻底理解docker entrypoint 需求: 搞个镜像,可以运行java -jar xxx.jar包,xxx.jar包名称要用参数传 思路1: 打对应运行ja ...
- windows 安装 mysql 启动
mysqld --defaults-file="d:/lovejava/mysql-5.6/my-default.ini"
- mysql Last_SQL_Errno: 1197 Coordinator stopped because there were error(s) in the worker(s)问题处理
Last_SQL_Errno: 1197 Coordinator stopped because there were error(s) in the worker(s). The most rece ...
- [LeetCode] 258. Add Digits 加数字
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. ...