美文网首页
docker容器实验记录

docker容器实验记录

作者: Wu杰语 | 来源:发表于2021-03-29 21:17 被阅读0次

实践出真知,构建一个springboot容器访问mysql容器实验,不动手的话是不知道要踩多少坑的。

springboot程序

自己写一个springboot程序,使用mybatis,其中application.properties配置如下:

management.endpoints.web.exposure.include=*
spring.output.ansi.enabled=ALWAYS

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://mysql0:3306/test?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.hikari.maximumPoolSize=5
spring.datasource.hikari.minimumIdle=5
spring.datasource.hikari.idleTimeout=600000
spring.datasource.hikari.connectionTimeout=30000
spring.datasource.hikari.maxLifetime=1800000

mapper使用

@Mapper
public interface MeMapper {
    @Select("select * from test.me")
    @Results(id = "allmes",
            value = {
                @Result(property = "moc", column = "moc", jdbcType = JdbcType.VARCHAR),
                @Result(property = "state", column = "state", jdbcType = JdbcType.VARCHAR)
            }
    )
    List<Me> getAllMe();
}

两个坑:

  1. 写完编译jar包,自己用java -jar xx.jar跑一下,看能否跑起来。
  2. 这里需要注意的是由于采用Dockerfile的时候使用镜像如果使用8,这里编译安装jdk的时候就需要安装jdk8

Dockerfile如下:

# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER wugk <wugaoke2020@126.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar
ADD memanager-1.0-SNAPSHOT app.jar 
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

容器操作

数据库容器

首先需要掌握一个基础知识,容器A如果要能直接访问容器B,在同一主机下,有--link方式,更通用的方式是创建网桥。

docker network create network-sql   //创建docker网桥

docker  pull mysql
docker run -d -p 1234:3306 -v /home/mysql01/conf:/etc/mysql/conf.d -v /home/mysql01/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 --netwrok network-sql mysql:latest

注意docker run命令,使用--network network-sql就指定使用自己创建的网桥network-sql,其它容器也同样的run的时候指定network为network-sql,就可以在容器中使用容器名来ping通mysql容器。


image.png

这里有个坑,需要将root用户设置一下可以在外部访问
https://blog.csdn.net/m0_37460012/article/details/90290148
进入到容器中操作,而且发现设置的密码无效,需要重新设置一下密码。
https://download.csdn.net/download/weixin_38732343/13684282?utm_source=iteye_new

springboot容器
docker build -t springbootmes .    // 构造镜像
docker run -d --name springbootmes0 -p 8089:8080 --network network-sql springbootmes:latest

在mysql中创建好表,插入数据,然后操作一下访问8089端口:


image.png

小结

技术是实践型的,通过动手和分享是最好的两种学习方式。对于docker的学习,要明白底层原理实际上是namespace操作、网络上网桥、veth pair、vxlan知识等,只有通过动手才能理解的比较深入。

相关文章

  • docker容器实验记录

    实践出真知,构建一个springboot容器访问mysql容器实验,不动手的话是不知道要踩多少坑的。 spring...

  • docker使用技巧记录

    随笔记录,不定时更新 安装docker 容器相关 删除所有容器docker rm $(docker contain...

  • docker学习记录

    docker 学习 命令记录 获取所有容器Id 停止所有的容器 查看日志通过docker logs命令可以查看容器...

  • Docker容器的操作命令

    前言 Docker 容器的操作命令,记录下来!?? 操作Docker容器 重新启动docker服务 查看 Dock...

  • docker 记录

    docker 记录 docker 启动容器、进入容器、删除容器等 在生产环境中,为了提高容器的高可用性和安全性,一...

  • 1. Docker简介

    最近开始学习Docker这个虚拟容器技术, 决定把学习过程记录下,先来记录下Docker的简介。 Docker简介...

  • Docker命令收集

    记录docker学习路上的点滴命令: 进入容器内部:docker exec -it ...

  • 容器日志监控--filebeat容器收集日志

    docker 会将容器日志记录到/var/lib/docker/containers/id/id-json.log...

  • Ubuntu16.04搭建zabbix服务端

    这次的实验环境是在docker容器中进行的,为此我们需要docker pull ubuntu:16.04的镜像,以...

  • 常用docker命令

    docker进入容器: docker查看容器ip docker重启容器 docker 启动容器 docker复制宿...

网友评论

      本文标题:docker容器实验记录

      本文链接:https://www.haomeiwen.com/subject/wrqihltx.html