一 docker中配置mysql
docker search xxx 从镜像库查询
docker pull xxx 从镜像库中拉取镜像
docker image ls 查看本地镜像
docker run -it --name mysql1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql
创建mysql容器
设置项详解:
-it : 以交互模式运行容器,并为容器重新分配一个伪输入终端
-- name : 容器名
-p : 指定端口 格式为:主机(宿主)端口:容器端口
-e : 设置环境变量, 图中设置mysql中root用户密码为123
-d : 后台运行容器并将容器ID返回
docker ps 查看运行中的进程
docker ps -a 查看所有进程
docker logs xxxxx 查询日志
docker stop xxxx 停止容器
docker rm xxxxx 删除容器
通过上面命令创建的mysql容器将数据都存放在docker容器中,容易丢失
所以要讲数据挂载到linux中
先创建这三个文件夹
在conf文件夹中创建cnf文件
由于docker容器分配的ID取决于容器的启动顺序,为了使容器的ID固定,创建一个新的网络
docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 my_network
然后使用命令创建容器
docker run -it \
--name mysql \
-p 3306:3306 \
--privileged \
-e MYSQL_ROOT_PASSWORD=123 \
--network my_network \
--ip 172.18.12.2 \
-v /etc/localtime:/etc/localtime \
-v /usr/local/software/mysql/3306/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/software/mysql/3306/data:/var/lib/mysql \
-v /usr/local/software/mysql/3306/mysql-files:/var/lib/mysql-files \
-d mysql
docker inspect mysql 查看mysql容器详细信息
docker inspect mysql |grep IPAdd 使用管道过滤 只显示指定内容
可以看到IP成功绑定为172.18.12.2
docker exec -it mysql bash 进入mysql容器
mysql -uroot -p123 启动mysql
成功
二 DockerFile
linux服务器配置Docker
vim /lib/systemd/system/docker.service 打开docker.service文件
在ExecStart这一行加上 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
systemctl daemon-reload 重新加载docker的daemon
systemctl restart docker.service 重启docker
netstat -nptl|grep 2375 查看2375端口状态
curl http://192.168.118.128:2375/info 使用curl测试API
注意IP地址是linux的IP
开放2375端口
firewall-cmd --add-port=2375/tcp --permanent
firewall-cmd --reload
三 idea中使用docker的小案例
idea设置
mysql
entity
public class Pet {
@TableId(type = IdType.AUTO)
private Integer id;
private String name;
private Integer age;
private String kind;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
}
mapper
public interface PetMapper extends BaseMapper<Pet> {
}
service
public interface PetService {
List<Pet> getAllPet();
}
ServiceImpl
@Service
public class PetServiceImpl implements PetService {
@Autowired
private PetMapper petMapper;
@Override
public List<Pet> getAllPet() {
return petMapper.selectList(new QueryWrapper<>());
}
}
controller
@RestController
public class PetController {
@Autowired
private PetService petService;
@GetMapping("/getAllPet")
public List<Pet> getAllPet(){
return petService.getAllPet();
}
}
dockerfile
点击箭头
启动
访问服务接口文章来源:https://www.toymoban.com/news/detail-804862.html
文章来源地址https://www.toymoban.com/news/detail-804862.html
到了这里,关于Docker学习第二天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!