Docker_notes_practice
2024-05-15 17:51:14
目录
- 1. 操作系统
- 2. Web服务
- 2.1 Apache
- 2.2 Nginx
- 3.3 Tomcat & Jetty
- 3.4 LAMP
- 3.5 CI/CD
- 4. 数据库
- 4.1 MySQL
- 4.2 MongoDB
- 4.3 Cassandra
- 5. 分布式处理
- 5.1 Hadoop
- 5.2 Spark
- 5.3 Storm
- 6. 编程开发
- 6.1 C/C++
- 6.2 Java
- 6.3 Python
- 7. 云服务
1. 操作系统
- busybox
- alpine
- ubuntu
- centos
2. Web服务
2.1 Apache
:'
FROM httpd:2.4
# mkdir public; vi ./public/index.html
COPY ./public /usr/local/apache2/htdocs
'
docker build -t apache2-image .
#############################################
2.2 Nginx
Nginx具有热部署、高并发、低内存、快速响应和可靠性高等特点。
docker run -d -p 80:80 -v index.html:/usr/share/nginx/html:ro --name myweb nginx
#############################################
:'
FROM nginx
COPY ./index.html /usr/share/nginx/html
'
docker build -t my-nginx .
docker run -d --name myweb my-nginx
#############################################
:'
FROM ubuntu
MAINTAINER lihua<lihua@docker.com>
# 安装配置
RUN apt-get install -y nginx && \rm -rf /var/lib/apt/lists/* && \echo "\ndaemon off;" >> /etc/nginx/nginx.config &&\chown -R www-data:www-date /var/lib/nginx
RUN echo "Asia/Shanghai" >> /etc/timezone && \dpkg-reconfigure -f noninteractive tzdata
# 添加用户脚本
ADD run.sh /run.sh
RUN chmod 755 /*sh
# 定义可以被挂载的目录:虚拟主机的挂载目录、证书目录、配置目录和日志目录
VOLUME ["/etc/nginx/sites-enabled","/etc/nginx/certs", \"/etc/nginx/conf.d", "/var/log/nginx"]
# 定义工作目录
WORKDIR /etc/nginx
# 定义输出命令:"#!/bin/bash\n/usr/sbin/nginx"
CMD ["/run.sh"]
# 定义输出端口
EXPOSE 80
EXPOSE 443
'
docker build -t my-nginx:2 .
docker run -d --name myweb2 my-nginx:2
3.3 Tomcat & Jetty
Jakarta项目开发的一个Servlet容器,内含了一个http服务器,具有管理和控制平台的功能。
#############################################
Jetty是一个开源servlet容器,相比tomcat,结构更加合理,性能更优。
docker run -d jetty
3.4 LAMP
LAMP(Linux-Apache/nginx-MySQL-PHP/perl/python)是目前流行的web工具栈。相比Java/J2EE架构具有资源丰富、轻量和快速开发的特点。相比.NET架构,具有跨平台、高性能和价格低的优势。
docker run -it -p 80:80 linode/lamp /bin/bash
service apache2 start
service mysql start
#############################################
docker run -d -p 80:80 -p 3306:3306 tutum/lamp
:'
FROM tutum/lamp:latest
RUN rm -rf /app && git clone <git_address> /app
EXPOSE 80 3306
CMD ["/run.sh"]
'
docker build -t my-lamp .
docker run -d -p 80:80 -p 3306:3306 my-lamp
3.5 CI/CD
Jenkins是一个持续集成和持续交付工具。
docker run -p 8080:8080 -p 50000:50000 --name jk\-v /yourhome:/var/jenkins_home jenkins
Gitlab是一款开源源码管理系统。支持基于Git的源码管理、代码评审、issue跟踪、活动管理、wiki页面、持续集成和测试等功能。
docker run -d --name gitlab \--host-name gitlab.ex.com \--publish 443:443 --publish 80:80 --publish 23:23 \--restart always \--volume /srv/gitlab/config:/etc/gitlab \--volume /srv/gitlab/logs:/etc/log/gitlab \--volume /srv/gitlab/data:/var/opt/gitlab \gitlab/gitlab-ce:latest
4. 数据库
4.1 MySQL
MySQL是开源的关系型数据库。具有成熟可靠、易用等特点。
# 快速启动
docker run -d --name mysql \-e MYSQL_ROOT_PASSWORD=123 \mysql:latest
# 通过配置文件进行配置
docker run --name mysql \-e MYSQL_ROOT_PASSWORD=123 \-v /config:/etc/mysql/conf.d \mysql:latest
# 通过标签进行配置
docker run --name mysql \-e MYSQL_ROOT_PASSWORD=123 \mysql:latest \--character-set-server=utf8mb4
4.2 MongoDB
MongoDB是NoSQL数据库。具有高性能、易部署、易使用等特点。
docker run -d --name md mongo
4.3 Cassandra
Cassandra是开源的分布式数据库。
docker run -d --name cs cassandra
5. 分布式处理
5.1 Hadoop
Hadoop是一个开源的分布式计算平台,由HDFS(分布式文件系统)、YARN(资源管理系统)和MapReduce(分布式处理管理)三个核心子系统组成。此外还包括HBae(列数据库),Cassandra(分布式数据库)等相关项目。
5.2 Spark
Spark是一个大数据处理框架。相较Hadoop和Storm,其支持更灵活的函数定义,可以将应用处理速度提升1-2个数量级,并提供了众多实用工具。
5.3 Storm
Storm是一个实时流计算框架。Storm集群和Hadoop集群类似,除了后者运行的是Mapduce任务,而前者运行的是topology。
6. 编程开发
6.1 C/C++
6.2 Java
6.3 Python
7. 云服务
Docker_notes_practice相关推荐
最新文章
- 微博基于Flink的机器学习实践
- java socket同步通信,javasocket客户端与服务端同步通信实例
- 【UWB】Savitzky Golay filter SG滤波器快速入门并上手使用
- Java设计模式之创建型:建造者模式
- CSS3+JS切割轮播图
- 深入学习SAP UI5框架代码系列之三:HTML原生事件 VS UI5 Semantic事件
- 领导者的资质——学习笔记(3):领导者的十项职责
- 部署Symantec Antivirus 10.0网络防毒服务器之七
- mysql 并发_MySQL的并发控制与加锁分析
- libevent源码分析:bufferevent
- 斯诺登:澳大利亚的监视政策比NSA还下流
- GitHub上下载资源
- 付呗聚合支付快速教程 基础篇②——FubeiUtils付呗工具类(封装参数和签名规则)
- RPL(8):RFC6550翻译(8)---下行路由
- Power bi 1.2连接文本文件
- PSO粒子群算法微电网优化调度(微电网孤岛运行优化调度)matlab程序
- 学习笔记2:高精度地图
- CADENCE 拼板经验
- Windows XP 下安装SQL SERVER2005 问题汇总
- 用户不在 sudoers 文件中此事将被报告