dockerfile简单实践部署(jenkins,wordpress)

实现部署jenkins的流程

配置java环境,导入jenkins包,运行命令 java -jar jenkins包,这里为了减少进入jenkins的web端安装插件,将插件提前部署到容器内。

制作dockerfile

 创建镜像所在的文件夹和Dockerfile文件 
mkdir /test
cd /testvim Dockerfile
###在Dockerfile文件中写入指令FROM centos:7.9.2009   #镜像的基层WORKDIR /opt  #进入镜像到/opt下 功能等同与cdRUN yum -y install fontconfig  #构建镜像时执行的命令,安装fontconfigADD  jdk-11.0.16_linux-x64_bin.tar.gz  /opt/   #将本地文件添加到容器中,tar类型文件会自动解压ADD jenkins-2.414.3.war  /opt/ENV JAVA_HOME=/opt/jdk-11.0.16   #设置环境变量
ENV PATH=${PATH}:${JAVA_HOME}/bin
ENV JENKINS_HOME=${HOME}/.jenkins  #定义jenkins的默认数据存放目录CMD [ "java","-jar","/opt/jenkins-2.414.3.war" ]    #容器启动时 进行调用

创建镜像

docker build -t jenkins:1.0 .docker build  是docker创建镜像的命令  

查看镜像

[root@docker test]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED             SIZE
jenkins      1.0       533af05bcb29   3 hours ago         1.01GB
nginx        latest    605c77e624dd   23 months ago       141MB
mysql        latest    3218b38490ce   23 months ago       516MB
centos       latest    5d0da3dc9764   2 years ago         231MB

从镜像创建容器

docker run -itd -p 80:8080 -e JENKINS_HOME=/opt/.jenkins  -v plugins:/opt/.jenkins/plugins/ jenkins:1.0-v 将宿主机的文件映射到容器内对应的文件

访问宿主机192.168.231.192

由于已经将插件的包从宿主机映射到容器内,因此不在需要我们手动安装,点进去会很快加载好

成功

实现部署wordpress

流程大概就是需要nginx 与php,需要MySQL数据库存储,需要拉取wordpress代码,我们不能在容器内修改nginx的配置文件,因此需要在创建镜像的时候就将宿主机的nginx.conf拷贝到镜像内。通过nginx来访问php,因此需要将nginx的默认网页发布页面修改为wordpress,将权限改为777,方便我们后续操作。我们手动启动不了nginx与php,因此可以写个脚本 将脚本拷贝到镜像内,让其在容器启动时代替我们启动nginx与php。

 创建镜像所在的文件夹和Dockerfile文件 

mkdir /root/wordpress
cd /root/wordpressvim  Dockerfile####Dockerfile的内容
FROM centos:7.9.2009##下载nginx与php
RUN yum install -y epel-release \
; yum install -y nginx \
; yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm \
; yum install -y php80-php-xsl php80-php php80-php-cli php80-php-devel php80-php-gd php80-php-pdo php80-php-mysql php80-php-fpm##拷贝wordpress代码到镜像
ADD wordpress-6.4.2-zh_CN.tar.gz  /usr/share/nginxCOPY   nginx.conf  /etc/nginx/COPY  wordpress.sh  /CMD [ "sh","/wordpress.sh" ]

宿主机的nginx配置文件

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}http {log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile            on;tcp_nopush          on;tcp_nodelay         on;keepalive_timeout   65;types_hash_max_size 4096;include             /etc/nginx/mime.types;default_type        application/octet-stream;# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.server {listen      80;server_name www.itnzs.top;location / {root /usr/share/nginx/wordpress;index index.php;}location ~ \.php$ {root          /usr/share/nginx/wordpress;  #指定网站目录fastcgi_pass   127.0.0.1:9000;    #指定访问地址fastcgi_index  index.php;           #指定默认文件fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; #站点根目录,取决于root配置项include        fastcgi_params;  #包含nginx常量定义}}# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2;
#        listen       [::]:443 ssl http2;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }}

脚本


chmod 777 /usr/share/nginx/wordpress -R  ##设置nginx网页发布目录的权限
nginx  #启动nginx#启动php
/opt/remi/php80/root/usr/sbin/php-fpm
echo "nginx与php已启动成功"#因为你现在还没有做任何操作,docker容器是进程型的虚拟化,和vmware不同,vmware是真正的虚拟出来内存和核心的,docker容器当你的进程停止以后,容器也就停止了,这时候你需要把它夯住,我这里是动态查看nginx的日志 这个进程就自动不会停止,你也可以使用top  随机应变
tailf /var/log/nginx/*

创建镜像

docker build -t wordpress:5.0  .

创建容器,并启动

[root@docker wordpress]# docker run -it -p 80:80 wordpress:5.0

创建mysql的容器,这里是宿主机已经有mysql的镜像了

[root@docker ~]# docker run -itd  -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress   --name mysql mysql##-e指定环境变量  指定登录数据库的root用户密码,指定创建mysql的数据库

访问web端 192.168.231.192

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/256032.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【项目日记(一)】高并发内存池项目介绍

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:项目日记-高并发内存池⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 项目日记 1. 前言2. 什么是高并发内存池…

Textual Inversion

参考博客1:https://www.bilibili.com/read/cv25430752/

移动云荣获OpenInfra社区“算力基础设施技术突破奖”

近日,一年一度的 OpenInfra Days China在北京召开,大会汇聚了全球各大云厂商的技术专家,共同分享全球前沿基础设施技术的展望和实践经验。在本次大会上,移动云荣获OpenInfra社区颁发的“算力基础设施技术突破奖”,表明…

基于ssm实验室课程管理系统源码和论文

idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 环境: jdk8 tomcat8.5 摘 要 随着科学实验规模的不断扩大,实验室课程数量的急剧增加,有关实验室课程的各种信息量也在不断成倍增长。面对庞大的信息量,就需要有…

ChatGPT 应用开发(一)ChatGPT OpenAI API 免代理调用方式(通过 Cloudflare 的 AI Gateway)

前言 开发 ChatGPT 应用,我觉得最前置的点就是能使用 ChatGPT API 接口。首先我自己要能成功访问,这没问题,会魔法就可以本地调用。 那用户如何调用到我的应用 API 呢,我的理解是通过用户能访问到的中转服务器向 OpenAI 发起访问…

基于SSM实现的公文管理系统

一、技术架构 前端:jsp | jquery | bootstrap 后端:spring | springmvc | mybatis 环境:jdk1.8 | mysql | maven 二、代码及数据库 三、功能介绍 01. 登录页 02. 首页 03. 系统管理-角色管理 04. 系统管理-功能管理 05. 系统管理-用…

猫咪瘦弱的原因是什么?适合给消瘦猫咪长肉吃的猫罐头分享

很多小猫咪吃得很多,但是还是很瘦,这让很多猫主人感到困惑,猫咪瘦弱的原因是什么呢?铲屎那么多年,还是有点子养猫知识在身上的。那么,小猫咪瘦弱的原因是什么呢?让我们看看是不是这些原因导致的…

详细解读电力DLT698.45-2017通信规约--正向有功总电能

建立连接请看这篇:详细解读DLT698.45-2017通信规约--预连接响应http://mp.weixin.qq.com/s?__bizMzA3NjAwMjQzMQ&mid2652026396&idx1&sna0a17f005d23136c922a7c381ddb7e75&chksm8481f30cb3f67a1a94e66db77e61fe73c22b1904fcdbb0144108e132b265e7b4…

黑苹果之显卡篇

一、什么是显卡 显卡GPU(Video card、Display card、Graphics card、Video adapter)是个人计算机基础的组成部分之一,将计算机系统需要的显示信息进行转换驱动显示器,并向显示器提供逐行或隔行扫描信号,控制显示器的正…

springboot 在自定义注解中注入bean,解决注入bean为null的问题

问题: 在我们开发过程中总会遇到比如在某些场合中需要使用service或者mapper等读取数据库,或者某些自动注入bean失效的情况 解决方法: 1.在构造方法中通过工具类获取需要的bean 工具类代码: import org.springframework.beans…

华为OD机试 - 攀登者1(Java JS Python C)

题目描述 攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。 地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素0代表地面。 例如:[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0],代表如下图所示的地图,地图中有两个山脉位置分别为 1,2,3,4,5…

数字人知识库:Awesome-Talking-Head-Synthesis

数字人知识库:Awesome-Talking-Head-Synthesis 文章目录 数字人知识库:Awesome-Talking-Head-SynthesisDatasetsSurveyAudio-drivenText-drivenNeRF & 3DMetricsTools & SoftwareSlides & Presentations Gihub:https://github.co…