Dockerfile 部署wordpress和jenkins实验.

1.部署wordpress

1.1 部署前操作准备工作 

#创建dockerfile目录存放
[root@docker ~]# mkdir /dockerfile/
[root@docker ~]# cd /dockerfile/

#创建wordpress项目存放目录
[root@docker dockerfile]# mkdir wordpress
[root@docker dockerfile]# cd wordpress/

#在此目录创建Dockerfile文件
[root@docker wordpress]# touch Dockerfile




1.2 官网下载wordpress包

适用于博客到大型网站的 CMS (内容管理系统) | WordPress.org China 简体中文

https://cn.wordpress.org/

 

#命令行下载包
[root@docker wordpress]# wget https://cn.wordpress.org/latest-zh_CN.tar.gz


 

1.3  编辑Dockerfile文件

第一步,先准备一个nginx配置文件魔板


user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    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;

    keepalive_timeout  65;

    #gzip  on;

    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;
            include        fastcgi_params;
        		}
        }

}

第二步:编写Dockerfile文件

#拉取基础镜像
FROM centos:7.9.2009

#下载nginx
RUN yum install -y epel-release \
    ; yum install -y nginx \
    ; yum clean all

#下载php
RUN yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm 
RUN  yum install php80-php-xsl php80-php php80-php-cli php80-php-devel php80-php-gd php80-php-pdo php80-php-mysql php80-php-fpm -y 
RUN  yum clean all

#拷贝并解压wordpress包
ADD ./latest-zh_CN.tar.gz /usr/share/nginx

#拷贝nginx和php配合使用配置文件
COPY ./nginx.conf /etc/nginx/

#拷贝启动脚本
COPY ./start.sh /

#当启动容器时后执行的命令
CMD ["sh","/start.sh"]

第三部:进入容器后启动nginx和php脚本

[root@docker wordpress]# vim start.sh
chmod 777 /usr/share/nginx/wordpress -R
nginx
/opt/remi/php80/root/usr/sbin/php-fpm
echo "nginx和php启动成功!"
tail -f /var/log/nginx/* 

1.4 构建Dockerfile

#-t后加自定义镜像名 .为加载Dockerfile文件
[root@docker wordpress]# docker build -t wordpress:2.0 .

[+] Building 27.3s (13/13) FINISHED                                                            
 => [internal] load build definition from Dockerfile                                      0.0s
 => => transferring dockerfile: 662B                                                      0.0s
 => [internal] load .dockerignore                                                         0.0s
 => => transferring context: 2B                                                           0.0s
 => [internal] load metadata for docker.io/library/centos:7.9.2009                       24.0s
 => [1/8] FROM docker.io/library/centos:7.9.2009@sha256:9d4bcbbb213dfd745b58be38b13b996e  0.0s
 => [internal] load build context                                                         0.1s
 => => transferring context: 101B                                                         0.0s
 => CACHED [2/8] RUN yum install -y epel-release     ; yum install -y nginx     ; yum cl  0.0s
 => CACHED [3/8] RUN yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.r  0.0s
 => CACHED [4/8] RUN  yum install php80-php-xsl php80-php php80-php-cli php80-php-devel   0.0s
 => [5/8] RUN  yum clean all                                                              1.5s
 => [6/8] ADD ./latest-zh_CN.tar.gz /usr/share/nginx                                      0.9s
 => [7/8] COPY ./nginx.conf /etc/nginx/                                                   0.1s 
 => [8/8] COPY ./start.sh /                                                               0.1s 
 => exporting to image                                                                    0.5s
 => => exporting layers                                                                   0.5s
 => => writing image sha256:e4ea999c02fce84b874584f76a99155a69aae88bd785178b50526f1bb3ea  0.0s
 => => naming to docker.io/library/wordpress:2.0                                          0.0s



 1.4.1 docker images 查看构建好的镜像

[root@docker wordpress]# docker images

 1.5 运行镜像wordpress:2.0镜像

[root@docker wordpress]# docker run -itd -p 80:80 wordpress:2.0
0a08ae641e6c8f6921cbaf641c4786cb94b4ede1039e2e73d0abd3406fb515a7

浏览器输入ip+映射的端口进行访问'

1.6 运行数据库镜像

#-e MYSQL_ROOT_PASSWORD=[设置的数据库密码]
#  -e MYSQL_DATABASE=[创建的数据库名称]
[root@docker wordpress]# docker run -it -e MYSQL_ROOT_PASSWORD=123 -e MYSQL_DATABASE=wordpress mysql

由下图可见,nginx,php,mysql已经全部运行

 

1.7 进入浏览器进行配置

!注意  ,数据库主机 是mysql容器的ip

最后按着步骤做注册和登录.下图为登录后效果图.

 2.部署jenkins

2.1准备工作,准备jenkinswar包和jdk(根据jenkins版本选择jdk)

[root@docker dockerfile]# mkdir jenkins
[root@docker dockerfile]# cd jenkins/
#将实验所用包放在此目录下
total 543264
-rw-r--r--   1 root root       272 Dec  7 19:56 Dockerfile
drwxr-xr-x   9 root root       126 Dec  7 18:29 jdk-11.0.19
-rw-r--r--   1 root root 169440335 Dec  7 15:56 jdk-11.0.19_linux-x64_bin.tar.gz
-rw-r--r--   1 root root  89542047 Dec  7 15:55 jenkins-2.414.3.war
drwxr-xr-x 139 root root     12288 Nov 29 06:10 plugins
-rw-r--r--   1 root root 297294835 Dec  7 15:55 plugins-2.414.3.tar.gz


2.2  编写Dockerfile

[root@docker jenkins]# vim Dockerfile
#获取基础镜像源
FROM centos:7

#传jdk包并解压
ADD ./jdk-11.0.19_linux-x64_bin.tar.gz /usr/local

#设置环境变量
ENV JAVA_HOME=/usr/local/jdk-11.0.19
ENV PATH=$PATH:${JAVA_HOME}/bin

#传jenkins插件包
COPY ./plugins /root/.jenkins/

#将jenkins的war包 考到容器
COPY ./jenkins-2.414.3.war /

#下载必要的工具
RUN yum -y install fontconfig

#使用镜像运行容器时执行的命令
CMD ["java","-jar","/jenkins-2.414.3.war"]

2.3 构建

[root@docker jenkins]# docker build -t jenkins:2.0 .

2.4 查看

[root@docker jenkins]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
jenkins      2.0       1dabcda5117b   13 minutes ago   1.16GB

 2.5 运行

[root@docker jenkins]# docker run -it -p 8080:8080 jenkins:2.0

 2.6 查看容器是否运行

[root@docker jenkins]# docker ps
CONTAINER ID   IMAGE           COMMAND                  CREATED          STATUS          PORTS                                       NAMES
af8a3028c8d8   jenkins:2.0     "java -jar /jenkins-…"   14 minutes ago   Up 14 minutes   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   interesting_wright

2.7 进入浏览器输入ip+端口访问

2.8实验完成

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值