云原生学习(二)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 云原生学习dockerfile

一、java相关
0.基于镜像安装java
FROM openjdk:8-jdk-alpine (openjdk:8)
COPY ./docker-demo.jar /tmp/app.jar
EXPOSE 80
ENTRYPOINT java -jar /tmp/app.jar

1.手动安装jdk和tomcat
FROM centos:7
ADD jdk-8u333-linux-x64.tar.gz /usr/local
ADD apache-tomcat-9.0.64.tar.gz /usr/local
COPY index.jsp /usr/local/apache-tomcat-9.0.64/webapps/
RUN yum -y install vim
WORKDIR /usr/local
ENV JAVA_HOME=/usr/local/jdk1.8.0_333
ENV CATALINA_HOME=/usr/local/apache-tomcat-9.0.64
ENV CATALINA_BASH=/usr/local/apache-tomcat-9.0.64
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.64/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.64/logs/catalina.out

2.基于tomcat镜像安装
From hub.c.163.com/library/tomcat:latest
MAINTAINER liping haha@123.com
COPY jpress.war /usr/local/tomcat/webapps

二、python相关
3.基于python镜像安装 (pip freeze > requirements.txt)
From python:3.7
COPY ./app.py /tmp/app.py
COPY ./requirements.txt /tmp/requirements.txt
WORKDIR /tmp
RUN pip install -r requirements.txt
EXPOSE 8080
CMD ["python","app.py"]

4.不需要安装框架的python
FROM python:3.7
COPY ./youxi.py /tmp/
WORKDIR /tmp
EXPOSE 8080
CMD ["python","youxi.py"]

三、php相关
1).dockerfile
FROM centos:7
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo \
&& curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo \
&& yum clean all \
&& yum clean all && yum makecache \
&& yum install -y php php-fpm php-mysql mysql \
&& yum install -y nginx
ADD wordpress.tar.gz /usr/share/nginx/
RUN mv /usr/share/ngin x/wordpress/* /usr/share/nginx/html
RUN chmod 777 -R /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
ENV DBPASS=123456
EXPOSE 80 443 3306
COPY run.sh /
CMD ["bash","/run.sh"]

2)tar.gz nginx.conf run.sh

! /usr/bin/bash

php-fpm
nginx
tail -f /var/log/nginx/access.log

3)mysql 容器部署
docker pull mariadb:latest

docker run -itd -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress --name mysql mariadb:latest

-e声明环境变量,定义密码为123456,同时create一个wordpress的库

4)创建镜像

docker build -t wordpress:v1 . # . 不能省略哦

如果使用绝对路径的话应该是 docker build -f /opt/xxx/Dockerfile . -t wordpress:v1

docker run -itd --link mysql -p 80:80 --name wordpress --privileged=true wordpress:v1/usr/sbin/init (...--privileged=true ../usr/sbin/init 特权模式)

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
Kubernetes Cloud Native 容器
完全免费的K8S学习平台:在线集群环境助力你的云原生之路!
完全免费的K8S学习平台:在线集群环境助力你的云原生之路!
810 1
|
4月前
|
存储 Kubernetes Cloud Native
云原生 - Kubernetes基础知识学习
云原生 - Kubernetes基础知识学习
60 0
|
Cloud Native Devops 编译器
为什么从事云原生开发需要学习容器技术
为什么从事云原生开发需要学习容器技术
|
5月前
|
Cloud Native Shell Linux
云原生专题 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
云原生专题 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
80 0
|
5月前
|
Cloud Native Linux 虚拟化
云原生专题 |【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(底层实现系列)
云原生专题 |【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(底层实现系列)
188 0
|
消息中间件 自然语言处理 Cloud Native
基于大语言模型的 AIGC学习助手,重磅上线云原生消息社区!
你是否不知道怎么开始上手学习RocketMQ 5.0?不清楚从哪里找示例代码?是不是也经常找不到原理文档?
|
5月前
|
多模数据库 Cloud Native NoSQL
Nosql学习之路:云原生多模数据库Lindorm训练营第一弹来啦
Lindorm训练营系列将通过一系列由浅入深的高质量课程和丰富的动手实验,将理论与实践结合,带你从入门到成为高阶开发者。参营学习还有机会获得惊喜彩蛋~
|
5月前
|
存储 Kubernetes Cloud Native
云原生|kubernetes|持久化存储pv,pvc和StorageClass的学习
云原生|kubernetes|持久化存储pv,pvc和StorageClass的学习
266 1
|
5月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes|关于configMap的一些学习
云原生|kubernetes|关于configMap的一些学习
74 1
|
5月前
|
Kubernetes Cloud Native 安全
猿创征文|云原生|kubernetes学习之多账户管理--权限精细化分配方案(两种方式-sa和用户)
猿创征文|云原生|kubernetes学习之多账户管理--权限精细化分配方案(两种方式-sa和用户)
124 0