Dockerfile起zabibix、wordpress、CICD
  DcpJeOZ6VzTX 2023年11月13日 17 0

zabbix6.0

zabbix6.0需要mysql8.0以上版本

-#先把镜像拉过来:docker pull mysql:8.0
# 1.启动zabbix的数据库
docker run \
--name zabbix-db \
-v /data/zabbix:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123 \
-e MYSQL_DATABASE='zabbix' \
-e MYSQL_USER='zabbix' \
-e MYSQL_PASSWORD='123' \
-p 33061:3306 \
-d mysql:8.0 \
--character-set-server=utf8 \
--collation-server=utf8_bin


-#先把镜像拉过来:docker pull zabbix/zabbix-server-mysql:6.0.21-alpine
# 2.启动zabbix-server
docker run \
--name zabbix-server \
--link zabbix-db \
-e DB_SERVER_HOST="zabbix-db" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123" \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest

-#先把镜像拉过来:docker pull zabbix/zabbix-web-nginx-mysql:6.0.21-alpine
# 3.启动zabbix前端
docker run \
--link zabbix-db \
--link zabbix-server \
--name zabbix-web \
-e DB_SERVER_HOST="zabbix-db" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123" \
-e ZBX_SERVER_HOST="zabbix-server" \
-e PHP_TZ="Asia/Shanghai" \
-p 8080:8080 \
-d zabbix/zabbix-web-nginx-mysql:latest

wordpress打镜像如何获取环境变量

----前期准备------------------
# 安装docker
# 拉基础镜像(这里不拉镜像也行)
# 拉个数据库
# 1.创建wordpress镜像目录
[root@docker01 ~]# mkdir wordpress

# 2.编辑wordpress配置文件
vim bilg.conf
server {
    listen 80;
    server_name _;
    root /code/wordpress;

    location / {
        index index.php index.html;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
}

# 3.安装nginx_php(这里使用的是打好的包)
root@docker01 wordpress]# ll
total 31044
-rw-r--r-- 1 root root      316 Sep 11 14:47 blog.conf
-rw-r--r-- 1 root root 20682659 Sep 11 14:48 nginx_php.tgz

# 4.准备wordpress代码包
root@docker01 wordpress]# ll
total 31044
-rw-r--r-- 1 root root      316 Sep 11 14:47 blog.conf
-rw-r--r-- 1 root root 20682659 Sep 11 14:48 nginx_php.tgz
-rw-r--r-- 1 root root 11098483 Sep 11 14:46 wordpress-5.0.3-zh_CN.tar.gz

# 5.编辑服务启动脚本
## 正常数据库会单独装一台机器,使用这里可以不用装数据库
----不装数据库,这样写,来卡后台----
vim start.sh
#!/bin/bash
/sbin/php-fpm
/sbin/nginx -g "daemon off;"

-----编辑自动化构建文件-----
# 编写Dockerfile
vim Dockerfile
-----不装数据库且优化后(MySQL要单独一台机器)----
FROM centos:7
ADD nginx_php.tgz /opt
COPY start.sh /
RUN rm -f /etc/yum.repos.d/* &&\
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &&\
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo &&\
sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo &&\
yum insall -y gettext &&\
yum localinstall -y /opt/*.rpm &&\
mkdir /code &&\
rm -f /etc/nginx/conf.d/* &&\
rm -f /opt/* &&\
yum clean all &&\
rm -f /etc/yum.repos.d/*
COPY blog.conf /etc/nginx/conf.d/
ADD wordpress-5.0.3-zh_CN.tar.gz /code
RUN chown -R apache.apache /code/wordpress
EXPOSE 80/tcp 443/tcp
CMD ["/bin/sh","/start.sh"]
VOLUME /code/wordpress
ENV DB_NAME=wordpress
ENV DB_USER=wp_user
ENV DB_PASSWORD=111
ENV DB_HOST=mysql57
		
		
----构建镜像--------------------
# 构建镜像docker build
[root@docker01 wordpress]# docker build -t wp:v1 .  (在当前目录下时)
或写绝对路径
[root@docker01 wordpress]# docker build -t wp:v1 /root/wordpress

# 查看镜像
[root@docker01 wordpress]# docker images
REPOSITORY                      TAG             IMAGE ID       CREATED         SIZE
wp                              v1              e35a7d860177   2 minutes ago   1.02GB

# 测试运行一个容器
[root@docker01 wordpress]# docker run --name wp -p 80:80 -d wp:v1
# 浏览器访问
10.0.0.101:80

--------数据库----------------
# 启动容器
docker run --name mysql57 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7

# 进入容器
docker exec -it mysql57 /bin/bash


#通信
docker run --name wp -p 80:80 --link mysql57 -d wp:v2 -e 

先把wordpress解压 ,然后把变量写进wp-config-s .php 重新打包
原来的包和目录删除
写Dockerfile 写ENV

起CICD

gitlab

gitlab https://docs.gitlab.com/ee/install/docker.html

# 拉镜像
docker pull gitlab/gitlab-ce:latest

# 运行容器
docker run --detach \
--hostname 1.0.0.9 \
--publish 443:443 --publish 80:80 --publish 220:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ce:latest

docker run --detach \
--env GITLAB_OMNIBUS_CONFIG="external_url='http://127.0.0.1:35080'; gitlab_rails['gitlab_ssh_host'] = '127.0.0.1'; gitlab_rails['gitlab_shell_ssh_port'] = 35022" \
--name gitlab \
--hostname gitlab \
--restart on-failure \
--publish 35080:80 \
--publish 35022:22 \
--volume $PWD/gitlab/config:/etc/gitlab \
--volume $PWD/gitlab/logs:/var/log/gitlab \
--volume $PWD/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest

# 查看登录密码
[root@web03 wordpress]# docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
Password: UvdDM/clsg6u0+o5LJF67mArOdOLpNhp9rRa1fHJNGo=



git remote add origin ssh://git@172.17.0.3:35022/root/code.git


jenkins

jenkins https://www.jenkins.io/doc/book/installing/docker/

# 拉jenkins镜像
[root@web03 ~]# docker pull jenkins/jenkins:2.422-jdk11

# 启动jenkins镜像
docker run --detach \
--user root \
--name jenkins \
--hostname jenkins \
--restart on-failure \
--publish 37808:8080 \
--publish 37500:50000 \
--volume $PWD/jenkins:/var/jenkins_home \
jenkins/jenkins:2.422-jdk11

# 查看jenkins密码
启动Jenkins后, 使用浏览器输入服务器地址:37808进入Jenkins界面, 默认的用户为admin, 密码的话我们有两种方式知道密码

网页会提示我们密码储存在/var/jenkins_home/secrets/initialAdminPassword, 所以我们查看这个文件就行了, 使用docker exec -t jenkins cat /var/jenkins_home/secrets/initialAdminPassword即不进入容器查看文件
Jenkins的启动日志中也有密码所在文件的路径以及密码, 使用docker logs jenkins查看Jenkins的日志, 也能找到密码

[root@web03 ~]# docker logs 11407f1f9b0
e232be6f96164c80a4c0c0f850066ec7
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  ZLGFQDxSRQTs   2023年11月19日   14   0   0 DockerDockerFile
  AGQlQ84904PP   2023年11月13日   13   0   0 nginxDockerFile
  9JCEeX0Eg8g4   2023年11月13日   15   0   0 DockerDockerFile