docker5-使用Dockerfile创建nginx&&springboot+mysql+redis容器

本文目录

  • 前端容器
      • 一、文件目录结构(为了显而易见,显示在win下 应该在linux下 ls展示)
      • 二、Dockerfile编写 `vim Dockerfile`
      • 三、构建镜像
      • 四、运行镜像
      • 五、打包镜像为tar
      • 六、镜像的导入
  • 后端容器
      • 文件目录
      • Dockerfile
  • mysql容器
      • 拉取mysql镜像
      • 查看mysql镜像
      • 运行mysql带不带数据库
      • success
  • redis
    • 额外:jpress博客系统
      • Dockerfile
      • 同级内保存war包(github自行下载jpress)
      • 执行 .代表当前目录
      • 运行
      • mysql容器(上面)

前端容器

一、文件目录结构(为了显而易见,显示在win下 应该在linux下 ls展示)

docker5-使用Dockerfile创建nginx&&springboot+mysql+redis容器_第1张图片

二、Dockerfile编写 vim Dockerfile

FROM  centos
MAINTAINER 2018-08-31 zhaojianyu [email protected]
RUN  yum -y install gcc*  make pcre-devel zlib-devel
ADD nginx-1.10.1.tar.gz  /usr/src/
COPY nginx.conf /usr/local/nginx/conf/nginx.conf
COPY HManager /usr/local/nginx/HManager
WORKDIR /usr/src/nginx-1.10.1/
RUN useradd -s /sbin/nologin -M nginx
RUN ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install
RUN ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
EXPOSE 8888
WORKDIR /
RUN nginx
CMD ["nginx", "-g", "daemon off;"]

注释
1.安装环境
2.将配置文件(个人修改)移动到容器内配置文件
3.将项目copy到nginx目录下
4.暴露端口8888
5.容器内启动nginx

三、构建镜像

docker build -t 标签:版本 .

问题:容器名:便签只能用小写字母 后面有.

docker5-使用Dockerfile创建nginx&&springboot+mysql+redis容器_第2张图片

四、运行镜像

docker run -d -p 80:8888 镜像名:标签
docker run -d -p 80:80 --name manager_nginx --net host 516891ef1315
docker run -p 8308:8308 --net host --name manager_backend -v /opt/source:/source manager-backend
docker run -p 80:80 -d --name nginx -v /opt:/usr/share/nginx nginx

  • 更多参数参考本博其他文章

至此 ,前端服务启动成功

五、打包镜像为tar

参考更优文章:点击连接

六、镜像的导入

参考文章链接

镜像备份与恢复
docker save -o update1.tar update
docker load < update1.tar

后端容器

文件目录

docker5-使用Dockerfile创建nginx&&springboot+mysql+redis容器_第3张图片

Dockerfile

FROM frolvlad/alpine-oraclejdk8:slim
COPY config config
COPY source source
COPY m****l.jar /opt/m****l.jar
RUN sh -c 'touch /managerTool.jar'
ENV JAVA_OPTS=""
EXPOSE 9999
ENTRYPOINT [ "sh","-c","java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /opt/m****l.jar"]

注释
1.从仓库拉取frolvlad/alpine-oraclejdk8:slim镜像(自带jdk)
2.将需要的配置文件,资源文件拉入
3.将jar包复制到需要的目录 此处jar文件名打码**
4.执行java-jar命令,jvm参数调优可以数组形式写入

mysql容器

拉取mysql镜像

docker pull mysql:latest

查看mysql镜像

这里写图片描述

运行mysql带不带数据库

设置密码
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<你的密码> hub.c.163.com/library/mysql
设置密码和创建一个数据库
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<你的密码> -e MYSQL_DATABASE=jpress<你的库名> --name <容器名> hub.c.163.com/library/mysql
将数据持久化(挂载到宿主机)
docker run -d -p 3306:3306 --name 容器名 -v /home/宿主机位置:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=<你的密码> hub.c.163.com/library/mysql

success

这里写图片描述
开启mysql远程连接

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '********';

https://blog.csdn.net/liu911025/article/details/82156585
mysql -u root -p

redis

FROM centos:7.5.1804
MAINTAINER 1045152332@qq.com
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#安装YUM源
RUN yum -y update && yum -y install epel-release && yum -y install redis

EXPOSE 6379

#安装清理缓存文件
RUN yum clean all

#修改绑定IP地址
RUN sed -i -e 's@bind 127.0.0.1@bind 0.0.0.0@g' /etc/redis.conf
#关闭保护模式
RUN sed -i -e 's@protected-mode yes@protected-mode no@g' /etc/redis.conf
#设置密码
RUN echo "requirepass 1234567" >> /etc/redis.conf


#启动
ENTRYPOINT [ "/usr/bin/redis-server","/etc/redis.conf"]
CMD []

docker build -t ops-redis:latest .

docker run -d --name=HOPS_redis -p6379:6379 ops-redis

额外:jpress博客系统

war+tomcat打包到容器
mysql容器(上面的)

Dockerfile

拉取带tomcat的镜像

from hub.c.163.com/library/tomcat
MAINTAINER zhaojianyu [email protected]
COPY jpress.war /usr/local/tomcat/webapps

同级内保存war包(github自行下载jpress)

这里写图片描述

执行 .代表当前目录

docker build -t 名字:latest .

运行

docker run -d -p 8888:8080 id

mysql容器(上面)

你可能感兴趣的:(微服务/分布式/集群)