美文网首页
docker 常用部署Demo

docker 常用部署Demo

作者: lconcise | 来源:发表于2021-10-18 19:46 被阅读0次

在此记录常用Docker 部署项目的几个Demo ,学习总结,同时方便后期提高部署项目速度。

Docker 部署 FastDfs

需要的文件:

  • conf : 存在配置的文件夹。
    client.conf、http.conf、mime.types、mod_fastdfs.conf、nginx.conf、storage.conf、tracker.conf
  • dfs_data: 存储文件和日志
    data 、 logs
  • DockerfIle : 创建Docker 镜像的文件
  • fastdfs.sh:创建Docker镜像所需的脚本文件
  • start.sh:启动脚本(创建Docker镜像、启动Docker 容器)

Dockerfile

# centos 7
FROM centos:7
# 添加配置文件
ADD conf/client.conf /etc/fdfs/
ADD conf/http.conf /etc/fdfs/
ADD conf/mime.types /etc/fdfs/
ADD conf/storage.conf /etc/fdfs/
ADD conf/tracker.conf /etc/fdfs/
ADD fastdfs.sh /home
ADD conf/nginx.conf /etc/fdfs/
ADD conf/mod_fastdfs.conf /etc/fdfs

# run
RUN yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y \
  &&    cd /usr/local/src  \
  &&    git clone https://gitee.com/fastdfs100/libfastcommon.git --depth 1        \
  &&    git clone https://gitee.com/fastdfs100/fastdfs.git --depth 1    \
  &&    git clone https://gitee.com/fastdfs100/fastdfs-nginx-module.git --depth 1   \
  &&    wget http://nginx.org/download/nginx-1.15.4.tar.gz    \
  &&    tar -zxvf nginx-1.15.4.tar.gz    \
  &&    mkdir /home/dfs   \
  &&    cd /usr/local/src/  \
  &&    cd libfastcommon/   \
  &&    ./make.sh && ./make.sh install  \
  &&    cd ../  \
  &&    cd fastdfs/   \
  &&    ./make.sh && ./make.sh install  \
  &&    cd ../  \
  &&    cd nginx-1.15.4/  \
  &&    ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/   \
  &&    make && make install  \
  &&    chmod +x /home/fastdfs.sh


# export config
VOLUME /etc/fdfs

EXPOSE 22122 23000 7777
ENTRYPOINT ["/home/fastdfs.sh"]

fastdfs.sh

#!/bin/bash

new_val=$FASTDFS_IPADDR
old="com.ikingtech.ch116221"

sed -i "s/$old/$new_val/g" /etc/fdfs/client.conf
sed -i "s/$old/$new_val/g" /etc/fdfs/storage.conf
sed -i "s/$old/$new_val/g" /etc/fdfs/mod_fastdfs.conf

mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.backup
cp /etc/fdfs/nginx.conf /usr/local/nginx/conf

echo "start trackerd"
/etc/init.d/fdfs_trackerd start

echo "start storage"
/etc/init.d/fdfs_storaged start

echo "start nginx"
/usr/local/nginx/sbin/nginx 

tail -f  /dev/null

start.sh

#!/bin/bash
cur_dir=`pwd`
docker build -f Dockerfile -t fastdfs .

docker run \
--restart=always  \
-p 22122:22122 \
-p 23000:23000 \
-p 7777:7777 \
-e FASTDFS_IPADDR=172.16.86.38  \
-v ${cur_dir}/dfs_data:/home/dfs  \
--name fastdfs  \
-d fastdfs

Docker 部署Nginx

需要的文件

  • conf : 存在配置的文件夹。 nginx.conf
  • html : 静态资源存放目录
  • start.sh : 启动脚本

start.sh

#!/bin/bash
cur_dir=`pwd`
docker stop nginx
docker rm nginx
docker run \
    -p 80:80 \
    -p 8887:8887 \
    -p 8011:8011 \
    -v ${cur_dir}/html:/usr/share/html:rw \
    -v ${cur_dir}/conf/nginx.conf:/etc/nginx/nginx.conf:rw \
    --restart=always \
    --name nginx \
    -d nginx \

Docker 部署MySQL8

需要的文件

  • config: 存放配置的文件夹,my.cnf
  • data: 映射数据库的数据到硬盘
  • log: 日志
  • start.sh: 启动脚本

start.sh

#!/bin/bash
docker stop mysql8
docker rm mysql8
cur_dir=`pwd`
docker run \
    -p 3306:3306 \
    -e MYSQL_ROOT_PASSWORD=zdxf@xian \
    -v ${cur_dir}/data:/var/lib/mysql:rw \
    -v ${cur_dir}/log:/var/log/mysql:rw \
    -v ${cur_dir}/config/my.cnf:/etc/mysql/my.cnf:rw \
    -v /etc/localtime:/etc/localtime:ro \
    --name mysql8 \
    --restart=always \
    -d mysql:8.0.15

Docker 部署 jar

需要的文件

  • Dockerfile: 创建镜像的文件
  • start.sh: 启动脚本
  • xxxx.jar: jar包

Dockerfile

FROM java:8 
ADD xxx.jar /xxx.jar
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT ["java","-Xmx800m","-Xms400m","-jar","/xxx.jar","--spring.profiles.active=xxx,"--spring.flyway.enabled=false"]

start.sh

#!/bin/bash
docker rm -f xxx
docker rmi -f xxx
docker build -t xxx.
docker run --restart=always  --name xxx -d -p 8888:8888 -p 5656:5656  xxx

存放配置地址:https://github.com/lbshold/docker-deploy-demo

相关文章

网友评论

      本文标题:docker 常用部署Demo

      本文链接:https://www.haomeiwen.com/subject/fewyoltx.html