一篇教你容器编排DockerFile 一键部署
提示:跟着我的步法走起来: 容器编排的崛起和重要性在过去的几年里,容器技术已经以惊人的速度改变了软件开发和部署的方式。Docker,作为一种领先的容器化平台,引领了这场变革,使开发人员能够将应用程序及其所有依赖项打包成一个轻量、可移植和一致的容器。这种容器化方法极大地简化了开发、测试和部署过程,让应用程序可以在不同环境中无缝运行,无论是在开发人员的本地计算机上、云上的虚拟机上,还是物理硬件上。然而
提示:本文章是使用容器编排更新管理容器
前言
提示:跟着我的步法走起来: 容器编排的崛起和重要性
在过去的几年里,容器技术已经以惊人的速度改变了软件开发和部署的方式。Docker,作为一种领先的容器化平台,引领了这场变革,使开发人员能够将应用程序及其所有依赖项打包成一个轻量、可移植和一致的容器。这种容器化方法极大地简化了开发、测试和部署过程,让应用程序可以在不同环境中无缝运行,无论是在开发人员的本地计算机上、云上的虚拟机上,还是物理硬件上。
然而,随着容器数量的增加和分布式应用的复杂性上升,单独的容器并不能满足所有需求。这就引入了容器编排的概念。容器编排是一种用于协调、管理和自动化容器的方法,旨在处理多个容器之间的交互、调度和伸缩。容器编排工具的出现填补了容器技术在大规模部署和维护方面的一些缺陷,使得构建、部署和管理分布式应用程序变得更加容易。
容器编排的崛起是响应云计算和微服务架构的需求,这些架构要求应用程序可以快速扩展和缩减,同时保持高可用性和可伸缩性。通过容器编排工具,开发人员和运维团队可以定义复杂的应用拓扑,确保容器之间的协同工作,实现自动伸缩,以及监控和维护容器化应用程序。
在这篇文章中,我们将深入探讨容器编排的概念、常用的容器编排工具(如 Docker Compose 和 Kubernetes)以及如何使用它们来构建和管理容器化应用程序。我们将了解容器编排的原理、优势和挑战,以及为什么它已经成为现代软件开发和运维的不可或缺的一部分。通过容器编排,我们可以更好地应对不断增长的应用程序复杂性,为用户提供高性能、可靠性和可伸缩性的应用程序服务。
让我们一起深入研究容器编排,探索其在当今云原生世界中的重要性和影响。
提示:以下是本篇文章正文内容,下面案例可供参考
一、编写DockerFile?
示例:
FROM node:latest as builder
WORKDIR /dockerFile
COPY . .
FROM nginx:latest
COPY /nginx.conf /etc/nginx
COPY --from=builder /dockerFile/dist /usr/share/nginx/html
COPY /scs1694237354088_www.aibrother.site_server.crt /etc/nginx/
COPY /scs1694237354088_www.aibrother.site_server.key /etc/nginx/
- DockerFile文件放到dockerFile文件夹下面
- COPY /nginx.conf /etc/nginx 这个是把nginx.conf文件放到/etc/nginx目录下面
- COPY --from=builder /dockerFile/dist /usr/share/nginx/html 这个是把builder这个镜像里面的/dockerFile/dist文件夹下面的文件放到/usr/share/nginx/html文件夹下面
- /scs1694237354088_www.aibrother.site_server.crt /etc/nginx/ 拷贝证书到 /etc/nginx/下面
如果你想多个使用一个nginx.conf 可以进行共享 以后再发
二、编写nginx.conf
代码如下(示例):
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 443 ssl; # 监听443端口
server_name 域名; # 你的域名
ssl_certificate /etc/nginx/scs1694237354088_www.aibrother.site_server.crt; # crt 证书
ssl_certificate_key /etc/nginx/scs1694237354088_www.aibrother.site_server.key; # key
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80; # 监听 80端口
#server_name ip;
server_name 你的域名; # 域名
return 301 https://$host$request_uri; # 如果访问80 端口 他会去转发 到443
}
}
三、把相关文件放到目录
可以这样进行 按照你们自己的来 我这宗也可以
/my-app/
├── certs/
│ ├── certificate1.crt
│ ├── certificate1.key
│ ├── certificate2.crt
│ ├── certificate2.key
│ └── ...
├── service1/
│ ├── Dockerfile
| ├── nginx.conf
│ ├── dist
│ ├── docker-compose.yml
│ ├── ...
├── service2/
│ ├── Dockerfile
| ├── nginx.conf
│ ├── ...
└── ...
四、编写容器编排
version: '3'
services:
https-service: # 这个自己定义
image: test1 # 使用 HTTPS 服务的镜像名称
ports:
- "443:443" # 映射到主机的 HTTPS 端口
volumes:
- ./certs:/etc/nginx/certs # 挂载证书目录
- ./dist:/usr/share/nginx/html #挂载打包的以后要修改就在这里修改
other-service:
image: service2-image # 使用其他端口服务的镜像名称
ports:
- "8080:80" # 映射到主机的其他端口
volumes:
五、构建镜像
执行命令
docker build -t test1 -f Dockerfile .
构建成功了之后不要 进行启动创建容器
如果没有下载过这个请执行
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version 查看
-
使用容器编排来启动 代码命令如下:
先停止:docker-compose stop https-service build: docker-compose build -q https-service
-
下一次我更新了 dist打包文件执行下面命令 马上会更新容器里面的不需要重新构建镜像
先停止:docker-compose stop https-service
build: docker-compose build -q https-service
更新容器: docker-compose up -d https-service
查看是否更新
这个就是你们的事情了
- 看完了吧 休息休息看看美女:
更多推荐
所有评论(0)