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.rhkb.cn/news/212591.html

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

相关文章

岳阳楼3D模型纹理贴图

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 岳阳楼,位于湖南省岳阳市岳阳楼区洞庭北路,地…

会声会影2024软件还包含了视频教学以及模板素材

会声会影2024中文版是一款加拿大公司Corel发布的视频编软件。会声会影2024官方版支持视频合并、剪辑、屏幕录制、光盘制作、添加特效、字幕和配音等功能,用户可以快速上手。会声会影2024软件还包含了视频教学以及模板素材,让用户剪辑视频更加的轻松。 会…

使用高防IP防护有哪些优势

高防IP是针对互联网服务器在遭受大流量的DDoS攻击后导致服务不可用的情况下,推出的付费增值服务,用户可以通过配置高防IP,将攻击流量引流到高防IP,确保源站的稳定可靠。高防IP相当于搭建完转发的服务器。 高防IP有两种接入方式&a…

CodeBlocks添加头文件,解决fatal error: ui.h No such file or directory

问题描述 在使用codeblocks工具进行LVGL仿真过程中报错,找不到头文件 原因分析: 没有将头文件加入编辑器搜索的目录中,编译时找不到头文件。 解决方案: 将要包含的头文件的目录加进去就可以了

kyuubi整合flink yarn application model

目录 概述配置flink 配置kyuubi 配置kyuubi-defaults.confkyuubi-env.shhive 验证启动kyuubibeeline 连接使用hive catalogsql测试 结束 概述 flink 版本 1.17.1、kyuubi 1.8.0、hive 3.1.3、paimon 0.5 整合过程中,需要注意对应的版本。 注意以上版本 姊妹篇 k…

06、pytest将多个测试放在一个类中

官方用例 # content of test_class.py # 实例1 class TestClass:def test_one(self):x "this"assert "h" in xdef test_two(self):x "hello"assert hasattr(x,"check")# content of test_class_demo.py # 每个测试都有唯一的类实例…

GaussDB数据库语法及gsql入门

一、GaussDB数据库语法入门 之前我们讲了如何连接数据库实例,那连接数据库后如何使用数据库呢?那么我们今天就带大家了解一下GaussDB,以下简称GaussDB的基本语法。 关于如何连接数据库,请戳这里。 学习本节课程之后&#xff0c…

python画立体玫瑰图

1.源代码 from matplotlib import cm import matplotlib.pyplot as plt import numpy as npfig plt.figure()#显示绘图窗口 ax fig.add_subplot(projection 3d)#绘图窗口设置 [x, t] np.meshgrid(np.array(range(25))/24.0, np.arange(0, 575.5, 0.5)/575*17*np.pi-2*np.pi…

玩转代码|组件封装之Slots、Emit和Props穿透

目录 背景 准备工作 Slots穿透方案-单子组件 Slots穿透方案-多子组件 Props和Emit穿透方案-单子组件 Props和Emit穿透方案-多子组件 最后 背景 组内多人共同开发时免不了基于某UI库二次封装组件来适应项目业务场景的情况,但不知道大家有没有遇到过需要兼容部…

伦茨科技宣布ST17H6x芯片已通过Apple Find My「查找」认证

深圳市伦茨科技有限公司(以下简称“伦茨科技”)发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家,该平台提供可通过Apple Find My认证的Apple查找(Find My)功能集成解决方案。…

DevOps搭建(一)-之swappiness安装详细步骤

1、安装swappiness yum install procps 修改配置 vim /etc/sysctl.conf 在配置文件中添加参数 vm.swappiness10 使生效 sysctl -p 如何确认swap分区是否开启 # free -mtotal used free shared buff/cache available Mem: 971 …

【React + Typescript】使用WebPack包管理、各种扩展插件组成的初始模板,开源协议:CC-BY-4.0

React Typescript Webpack 模板 模板展示项目结构使用的部分扩展包页面配置代码Layout 公共容器组件路由Jspackage.json 开源模板下载TIP 模板展示 项目结构 使用的部分扩展包 📂 System ├── 📂 Plugin │ ├── 📄 file-loader | 在处…

为什么SSL证书要设置有效期?如何避免SSL证书过期?

作为企业网站安全防护的基础设施之一,SSL证书对于验证网站真实性和保障网站数据传输安全具有重要作用。然而,当SSL证书过期时,用户与网站之间的传输过程就会处于暴露状态,很容易造成数据被监听、篡改和泄露。那么为什么SSL证书要设…

vue 前端实现login页登陆 验证码

实现效果 // template <el-form :model"loginForm" :rules"fieldRules" ref"loginForm" label-position"left" label-width"0px" class"login-container"><span class"tool-bar"></sp…

Docker本地部署Drupal内容管理框架并实现公网远程访问

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址7. 结语 前言 Dupal是一个强大的CMS&#xff0c;适用于各种不同的网站项目&#xff0c;从小型个人博客到大型企业级门户网站。它…

AtCoder ABC周赛2023 11/4 (Sat) D题题解

目录 原题截图&#xff1a; 题目大意&#xff1a; 主要思路&#xff1a; 注意事项&#xff08;很多人再这个地方掉坑&#xff09;&#xff1a; 代码&#xff1a; 原题截图&#xff1a; 题目大意&#xff1a; 给你两个数组&#xff08;A和B)长度都为n&#xff0c;然你求出一…

C语言——指针(五)

&#x1f4dd;前言&#xff1a; 上篇文章C语言——指针&#xff08;四&#xff09;更加深入的介绍了不同类型指针的特点&#xff0c;这篇文章主要想记录一下函数与指针的结合运用以及const和assert关于指针的用法&#xff1a; 1&#xff0c;函数与指针 2&#xff0c;const 3&am…

域名与SSL证书

域名是互联网上的地址标识符&#xff0c;它通过DNS&#xff08;Domain Name System&#xff09;将易于记忆的人类可读的网址转换为计算机可以理解的IP地址。当用户在浏览器中输入一个网址时&#xff0c;实际上是通过DNS解析到对应的服务器IP地址&#xff0c;从而访问到相应的网…

【DBeaver】驱动添加-Hive和星环

驱动 Hive驱动 hive驱动可以直接去官网下载官网地址&#xff0c;填一下个人信息。 如果想直接下载可以去我上次的资源下地址&#xff0c;需要用zip解压。 星环驱动 星环驱动是我第一次接触&#xff0c;是国产的基于开源Hive驱动自研的产品&#xff0c;我看到官网上有很多类…

SL1581降压恒压 耐压4V-30V降压5V 2A电流 外围简单,四个元器件

SL1581是一款专为降压恒压应用而设计的芯片&#xff0c;具有耐压4V-30V、降压5V、2A电流输出等特点&#xff0c;外围电路简单&#xff0c;仅需四个元器件。 一、芯片介绍 SL1581是一款专为降压恒压应用而设计的芯片&#xff0c;它采用先进的PWM控制技术&#xff0c;具有高效率、…