文章目录
系统常规安装
#更新软件及内核
yum -y update
安装rsync
yum -y install rsync
安装git
yum -y install git
安装docker
增加docker源
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
// 上步不行可以使用阿里docker源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
安装docker-ce
yum -y install docker-ce
增加docker开机启动
systemctl enable docker
更改docker存储位置
mkdir /mnt/docker
ln -s /mnt/docker /var/lib/docker
docker启动
systemctl start docker
安装java环境
制作jdk8镜像
#Dockerfile
FROM anapsix/alpine-java:8u172b11_jdk
WORKDIR /data
ADD start.sh /data/start.sh
RUN chmod a+x /data/start.sh
CMD /data/start.sh
#start.sh
#!/bin/sh
APP_HOME="/data"
APP_PID=$APP_HOME/pid
FILE_LIST=`ls ${APP_HOME}`
JAR_FILE=""
LOG_FILE=""
for FILE in $FILE_LIST
do
if [ "${FILE##*.}" = "jar" ]; then
JAR_FILE="${APP_HOME}/${FILE}"
LOG_FILE="${FILE%.*}.log"
fi
done
if [ -z $JAR_FILE ]; then
echo "Error : no jar file in $APP_HOME"
exit
fi
if [ -f "$APP_PID" ]; then
PID=`cat $APP_PID`
rm -rf $APP_PID
kill -9 $PID
fi
nohup java -Dfile.encoding=UTF8 -Djava.security.egd=file:/dev/./urandom $DEBUG -jar -Xms2048m -Xmx2048m -Xmn1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Xss256k -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:./gc.log -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5 -XX:CMSInitiatingOccupancyFraction=68 ${JAR_FILE} >>$APP_HOME/${LOG_FILE} 2>&1 &
PID=$!
echo $PID > ${APP_PID}
if [ ! -f $APP_HOME/${LOG_FILE} ]; then
echo "begin....." >>$APP_HOME/${LOG_FILE}
fi
tail -f $APP_HOME/${LOG_FILE}
#生成镜像
docker build . -t ph/jdk8
启动java项目
#镜像生成容器,data文件夹里面为jar包和配置文件
ln -s /data /mnt/data
docker run --name football -v /data/football:/data -p 8080:8080 -d ph/jdk8
docker run --name football-manage -v /data/football_manage:/data -p 8081:8080 -d ph/jdk8
docker run -itd --restart=unless-stopped -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /data/bsc_api:/data -p 8080:80 -d ph/jdk8
安装mysql
docker pull mysql:5.7.22
mkdir -p /mnt/mysql/
docker run --name mysql -p 3306:3306 -v /mnt/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.22
安装redis
docker pull redis:3.2.12
docker run --name redis -p 16379:6379 -d redis:3.2.12 --requirepass test123
安装nginx
docker pull nginx:alpine
docker run -itd --name nginx -v $(pwd)/html:/usr/share/nginx/html -v $(pwd)/conf/nginx.conf:/etc/nginx/nginx.conf -p 80:80 nginx:alpine
安装FastDFS
fastdfs-tracker镜像
Dockerfile
FROM alpine:3.7
#libfastcommon-1.0.38
RUN apk add --no-cache --virtual .build-deps \
build-base \
curl \
gd-dev \
libxslt-dev \
linux-headers \
make \
perl-dev \
readline-dev \
zlib-dev \
gd \
geoip \
libgcc \
libxslt \
zlib
RUN cd /tmp \
&& curl -fSL https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz -o libfastcommon.tar.gz \
&& tar xvzf libfastcommon.tar.gz \
&& curl -fSL https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz -o fastdfs.tar.gz \
&& tar xvzf fastdfs.tar.gz \
&& cd /tmp/libfastcommon-1.0.38 \
&& /tmp/libfastcommon-1.0.38/make.sh \
&& /tmp/libfastcommon-1.0.38/make.sh install \
&& cd /tmp/fastdfs-5.11 \
&& /tmp/fastdfs-5.11/make.sh \
&& /tmp/fastdfs-5.11/make.sh install \
&& cd /tmp \
&& rm -rf * \
&& apk del .build-deps
CMD fdfs_trackerd /etc/fdfs/tracker.conf start && tail -f /data/fastdfs/tracker/logs/trackerd.log
启动容器
docker run -itd --restart=unless-stopped -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone --network=host --name tracker -v $(pwd)/conf/tracker.conf:/etc/fdfs/tracker.conf -v $(pwd)/tracker:/data/fastdfs/tracker -p 22122:22122 biwow/tracker
fastdfs-storage镜像
Dockerfile
FROM alpine:3.7
# Docker Build Arguments
ARG RESTY_OPENSSL_VERSION="1.0.2k"
ARG RESTY_CONFIG_OPTIONS=""
ARG RESTY_CONFIG_OPTIONS_MORE=""
LABEL resty_openssl_version="${RESTY_OPENSSL_VERSION}"
LABEL resty_config_options="${RESTY_CONFIG_OPTIONS}"
LABEL resty_config_options_more="${RESTY_CONFIG_OPTIONS_MORE}"
# These are not intended to be user-specified
ARG _RESTY_CONFIG_DEPS="--with-openssl=/tmp/openssl-${RESTY_OPENSSL_VERSION} --add-module=/tmp/fastdfs-nginx-module-1.20/src"
RUN apk add --no-cache --virtual .build-deps \
gcc \
libc-dev \
make \
openssl-dev \
pcre-dev \
zlib-dev \
linux-headers \
curl \
gnupg \
libxslt-dev \
gd-dev \
geoip-dev \
gd \
geoip \
libgcc \
libxslt \
zlib
RUN cd /tmp \
&& curl -fSL https://www.openssl.org/source/openssl-${RESTY_OPENSSL_VERSION}.tar.gz -o openssl-${RESTY_OPENSSL_VERSION}.tar.gz \
&& tar xzf openssl-${RESTY_OPENSSL_VERSION}.tar.gz \
&& curl -fSL https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz -o fastdfs-nginx-module.tar.gz \
&& tar xvzf fastdfs-nginx-module.tar.gz \
&& curl -fSL https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz -o libfastcommon.tar.gz \
&& tar xvzf libfastcommon.tar.gz \
&& curl -fSL https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz -o fastdfs.tar.gz \
&& tar xvzf fastdfs.tar.gz
RUN cd /tmp/libfastcommon-1.0.38 \
&& /tmp/libfastcommon-1.0.38/make.sh \
&& /tmp/libfastcommon-1.0.38/make.sh install \
&& cd /tmp/fastdfs-5.11 \
&& /tmp/fastdfs-5.11/make.sh \
&& /tmp/fastdfs-5.11/make.sh install \
&& awk 'BEGIN { cmd="cp -i /usr/include/fastcommon/* /usr/include/fastdfs/"; print "n" |cmd; }' \
&& cd /tmp \
&& curl -fSL http://nginx.org/download/nginx-1.12.2.tar.gz -o nginx-1.12.2.tar.gz \
&& tar xvzf nginx-1.12.2.tar.gz \
&& cd /tmp/nginx-1.12.2 \
&& ./configure ${_RESTY_CONFIG_DEPS} ${RESTY_CONFIG_OPTIONS} ${RESTY_CONFIG_OPTIONS_MORE} \
&& make \
&& make install \
&& cd /tmp \
&& rm -rf *
# Add additional binaries into PATH for convenience
ENV PATH=$PATH:/usr/local/nginx/sbin
CMD /usr/local/nginx/sbin/nginx && fdfs_storaged /etc/fdfs/storage.conf start && tail -f /data/fastdfs/storage/logs/storaged.log
启动容器
# conf包含http.conf、mime.types、mod_fastdfs.conf、nginx.conf、storage.conf、storage_ids.conf
docker run -itd --restart=unless-stopped --network=host -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone --name storage -v $(pwd)/conf:/etc/fdfs -v $(pwd)/storage:/data/fastdfs/storage -v $(pwd)/conf/nginx.conf:/usr/local/nginx/conf/nginx.conf -p 23000:23000 -p 8082:80 biwow/storage