用Docker容器发布测试环境
制作镜像
根据如下内容,制作DockerFile文件。
FROM monidev.mid.com/centos:7.3
RUN mkdir -p /apps/svr/jdk/
COPY jdk1.7.0_71/ /apps/svr/jdk/
RUN mkdir /apps/svr/tomcat/
COPY tomcat7.0.82/ /apps/svr/tomcat/
ENV JAVA_HOME /apps/svr/jdk
ENV JRE_HOME /apps/svr/jdk/jre
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
ENV PATH $PATH:$JAVA_HOME/bin:$JRE_HOME/bin
ENV TOMCAT_MAJOR=7 \
TOMCAT_VERSION=7.0.82 \
TOMCAT_HOME=/apps/svr/tomcat \
CATALINA_HOME=/apps/svr/tomcat
EXPOSE 8080
CMD sh /apps/svr/tomcat/bin/startup.sh && tail -f /dev/null
#docker build -t monidev.mid.com:8083/tomcat_mid_jr_7.0.82:1.1 .
启动
通过Jenkins编译包时,采用下面的脚本进行启动容器。
DEV
docker rm -f edp-dev
docker run -d --restart=always --name="edp-dev" --net=host --env JAVA_OPTS="-Xms4096m -Xmx4096m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF8 -Ddisconf.conf=/apps/disconf.properties -Dport.http=8090" monidev.mid.com/tomcat_mid_jr:7.0.82
sleep 1
docker logs -f edp-dev
docker cp /apps/dev/disconf.properties edp-dev:/apps/
docker cp /apps/war/dev/efc.edp.war/target/efc.edp.war.war edp-dev:/apps/svr/tomcat/webapps/
docker restart edp-dev
SIT
docker rm -f edp-sit
docker run -d --restart=always --name="edp-sit" --net=host --env JAVA_OPTS="-Xms4096m -Xmx4096m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF8 -Ddisconf.conf=/apps/disconf.properties -Dport.http=9070" monidev.mid.com/tomcat_mid_jr:7.0.82
sleep 1
docker logs -f edp-sit
docker cp /apps/sit/disconf.properties edp-sit:/apps/
docker cp /apps/war/dev/efc.edp.war/target/efc.edp.war.war edp-sit:/apps/svr/tomcat/webapps/
docker restart edp-sit
其他命令
JAVA_OPTS="-server -Xms4096m -Xmx4096m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=1024m -XX:MaxPermSize=1024m -
Dfile.encoding=UTF8 -Ddisconf.conf='/apps/disconf.properties'"
-server -Xmx2048m -Xms2048m -XX:PermSize=1024M -XX:MaxPermSize=1024m -Ddisconf.conf="E:\disconf.properties"
1191 2018-07-05 23:08:10 docker run -d --name edp-uat -p 9060:8080 0c89cb292bb0
1192 2018-07-05 23:08:28 docker run -d --name edp-ver -p 9050:8080 0c89cb292bb0
宿主机文件到容器:docker cp 当前宿主机的文件 容器ID或者容器name:容器目录:
docker cp jdk-8u144-linux-x64.tar.gz testUbuntu:/home/kanpiaoxue/develop/jdk/
2、文件从容器到宿主机: docker cp 容器ID或者容器name:容器目录 当前宿主机的文件
docker cp efc.edp.war.zip f313edbbc5f1:/apps/svr/tomcat/webapps/
docker cp f313:/apps/disconf.properties /apps/projects/dev/properties/
docker cp disconf.properties f313:/apps/
docker start 3e9
docker exec -it f313edbbc5f1 /bin/basjh
docker ps
docker stop f313edbbc5f1
docker rm f313
history | grep run
docker ps
docker ps -a
docker run -d --name edp-dev -p 8090:8080 0c89cb292bb0
docker run -d --name edp-sit -p 9070:8080 0c89cb292bb0
history | grep cp
docker cp efc.edp.war.zip b1db:/apps/svr/tomcat/webapps/
docker cp efc.edp.war.zip 52bd:/apps/svr/tomcat/webapps/
docker cp disconf.properties b1db:/apps/svr/tomcat/webapps/
docker cp disconf.properties 52bd:/apps/svr/tomcat/webapps/
docker ps
docker exec -it 52bd /bin/bash
docker ps
docker stop 52bd
docker exec -it b1db /bin/bash
docker ps
docker stop b1db
docker start 52bd
docker start b1db
yum localinstall -y container-selinux-2.9-4.el7.noarch.rpm docker-ce-17.06.2.ce-1.el7.centos.x86_64.rpm
usermod -G docker apps
mkdir /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"disable-legacy-registry": true,
"graph": "/apps/data/docker",
"log-driver": "json-file",
"log-opts": {
"max-size": "1g"
},
"registry-mirrors": ["https://monidev.mid.com"]
}
EOF
systemctl stop docker.service
rm -rf /var/lib/docker
systemctl enable docker.service
systemctl restart docker.service
su - apps
vi /etc/docker/daemon.json
systemctl restart docker
docker ps
docker info
docker ps
docker images
docker rm -f tomcat
docker run -d --restart=always --name="tomcat" --net=host --env JAVA_OPTS="-Xms1g -Xmx1g -Dport.http=8081"
monidev.mid.com/tomcat_mid_jr:7.0.82
sleep 1
docker logs -f tomcat
ifconfig
cat /etc/os-release
cat /etc/issue
lsb_release -a
cat /etc/redhat-release -a
uname -a
ls
docker ps
vim /etc/docker/daemon.json
yum list installed
yum list installed |grep docker
docker info
systemctl restart docker
asystemctl restart docker
systemctl status docker.service
journalctl -xe
yum autoremove docker-ce
yum autoremove docker
yum list installed |grep docker
yum autoremove docker-common.x86_64
yum list installed |grep docker
yum autoremove docker-rhel-push-plugin.x86_64
cd /etc/yum.repos.d
ls
vim nexus.repo
cd /var/lib/docker
cd /apps/data/
ll
cd /apps/svr/
ls
cd docker-ce-17.06.2/
yum localinstall container-selinux-2.9-4.el7.noarch.rpm docker-ce-17.06.2.ce-1.el7.centos.x86_64.rpm
usermod -G docker apps
systemctl restart docker.service
systemctl enable docker.service
chown root:docker /bin/docker
chown root:docker /var/run/docker.sock
docker info
yum localinstall -y container-selinux-2.9-4.el7.noarch.rpm docker-ce-17.06.2.ce-1.el7.centos.x86_64.rpm
usermod -G docker apps
mkdir /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"disable-legacy-registry": true,
"graph": "/apps/data/docker",
"log-driver": "json-file",
"log-opts": {
"max-size": "1g"
},
"registry-mirrors": ["https://monidev.mid.com"]
}
EOF
systemctl stop docker.service
rm -rf /var/lib/docker
systemctl enable docker.service
systemctl restart docker.service
docker rm -f tomcat
docker run -d --restart=always --name="tomcat" --net=host --env JAVA_OPTS="-Xms1g -Xmx1g -Dport.http=8081"
monidev.mid.com/tomcat_mid_jr:7.0.82