在此记录常用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
网友评论