Docker学习第二天

本文介绍了如何在Docker中配置MySQL数据库,包括创建容器、挂载数据卷、使用DockerFile进行基础镜像定制以及在IDEA中集成Docker以开发微服务应用。还涉及了系统配置如修改docker服务端口和防火墙设置。
摘要由CSDN通过智能技术生成

一 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

点击箭头

启动

访问服务接口

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值