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包
#命令行下载包
[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