Docker常用环境搭建

系统常规安装

#更新软件及内核

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

回首笑人间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值