java项目或web项目在linux系统上用docker打成镜像容器执行代码
整体步骤
上传tomcat基镜像(有就不用上传)-->创建文件夹(如test)-->上传jar包或war包到test文件夹-->在test文件中创建Dockerfile文件-->创建镜像-->拉起容器,启动程序
1.下载tomcat基镜像
docker pull tomcat
2.创建文件夹
mkdir test
3.上传jar包或war包到test文件
用rz 命令来上传 或者在服务器软件工具中直接粘贴复制
4.创建Dockerfile文件
1>.touch Dockerfile #创建Dockerfile
2>.vi Dockerfile #进入Dockerfile文件(跳转到新界面编辑文件)的命令
Esc键+ :wq +enter健 #退出Dockerfile文件编辑界面
3>.cat Dockerfile #进入Dockerfile文件(linux本界面查询文件内容)的命令
4>.Dockfile内容(war包时)
FROM docker.io/tomcat #引用的tomcat基镜像
#MAINTAINER "test <xxx@xx.com>" #被注掉,暂没用
ADD Hebei_interface_serve.war /usr/local/tomcat/webapps/ #将Hebei_interface_serve.war 放置到tomcat基镜像下的webapps目录下,和单节点部署的放置位置一样
CMD ["catalina.sh", "run"] #启动那个运行的命令
5>.Dockerfile内容(jar包时)
FROM frolvlad/alpine-oraclejdk8:slim
ADD epic-crab-0.1.1.jar epic-crab.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/epic-crab.jar"]
5.创建镜像
docker build -t interface/server/hebei .(interface/server.hebei . 为镜像名) #创建镜像
docker images #查看镜像
6.拉起容器,启动程序
docker run --name=hebei-bomc-container -d -p 58888:8080 镜像id #拉起容器,启动程序
docker ps #查看运行中的容器列表
docker ps -a #查看创建过的容器(运行中的和没有运行中的都有)
7.其他命令
1>.docker logs -f -t --tail 0 容器id #查看日志
2>.docker save 镜像id> /root/镜像名.tar #镜像打tar包
docker save 镜像id | gzip > /root/镜像名.tar.gz #镜像打gz包
3>.docker exec -it 容器id /bin/bash #进入容器查看信息
4>.现有镜像,再有容器,容器是在镜像的基础上拉起的
5>.docker exec -it 容器id /bin/bash #登录容器,linux系统的命令界面到容器中
6>.exit #退出容器
7>.cp #复制文件
8>.docker stop 容器名称/容器id #停止容器
9>.docker start 容器名称/容器id #启动容器
8.修改docker容器内部映射端口(如将容器端口默认的8080修改成8051)
1>.根据基镜像docker.io/tomcat 拉起基镜像容器 dockr-io-tomcat-8051
docker run --name=dockr-io-tomcat-8051 -d -p 58888:8080 df50c9d355cf
docker run --name=容器名称 -d -p 外部主机访问端口:基镜像默认端口 镜像id (容器内部端口是根据tomcat基镜像默认的8080)
2>.导出容器(dockr-io-tomcat-8051)中的server.xml,
命令如下:docker cp ba66de0a8a61:/usr/local/tomcat/conf/server.xml /opt
docker cp 容器id:server.xml所在容器中的路径 导出路径
3>.将容器中tomcat的配置文件server.xml的8080端口修改成8051
4>.将修改好的server.xml导进容器(docker-io-tomcat-8051)的对应目录中
docker cp server.xml ba66de0a8a61:/usr/local/tomcat/conf
docker cp server.xml 容器id:server.xml所在位置
5>.重启docker-io-tomcat-8051容器
命令:docker restart 容器id
6>.查看docker-io-tomcat-8051容器日志,看容器内部tomcat端口是否修改成功
命令:docker logs 容器id
7>.将docker-io-tomcat-8051容器反打成8051-tomcat基镜像
命令:docker commit -a "lijiangtao" -m "tomcat-8051" ba66de0a8a61 8051-tomcat:latest
docker commit -a "lijiangtao" -m "tomcat-8051" 容器id 8051端口基镜像名:版本
注:-a 提交的镜像作者;-m 提交时的说明文字
8>.将8051-tomcat基镜像拉起容器,看是否能运行成功(可以在浏览器查看)
命令:docker run --name=8051-tomcat-container -d -p 9099:8051 7de26945c362
docker run --name=容器名称 -d -p 主机外部访问端口:容器内部修改后的端口 8051-tomcat镜像id
本台服务器ip是192.168.181.70,外部访问端口设置是9099;所以可以在浏览器上执行http://192.168.181.70:9099/,看是否启动了tomcat
9>.浏览器上可以访问成功,说明8051端口的tomcat基镜像打的容器可以运行成功
查看端口
或docker port 容器id
10>.然后就根据这个8051端口的基镜像用项目war包生成自己的项目镜像,拉起容器并运行项目
9.参考地址
1>.Docker导入导出镜像:https://jingyan.baidu.com/album/ce436649379e0a3772afd354.html?picindex=3
2>.Docker Tomcar 多个端口镜像构建:
3>.sed命令:http://man.linuxde.net/sed
10.k8s
1>.导出镜像
docker save 镜像id> /root/镜像名.tar #镜像打tar包
docker save 镜像id | gzip > /root/镜像名.tar.gz #镜像打gz包
导入镜像
docker load < /opt/install/ssss.tar
docker load -i epic-mgmt.0.1.23.tar.gz
2>.修改镜像tag
docker tag xxxidxx 192.168.29.222/library/epic-mgmt:0.1.25
3>.重新push镜像
docker push 192.168.29.222/library/epic-mgmt:0.1.25
4>.k8s创建镜像容器
kubectl create -f /opt/install/images/..../hebei-bomc.yaml
5>.k8s删除镜像容器
kubectl delete -f /opt/install/images/..../hebei-bomc.yaml
6>.查询生成的容器
kubectl get pod
7>.查询日志
kubectl logs 容器名
8>.进入容器中查询
kubectl exec -it 【podName】/bin/sh
9>.退出容器
exit
10>.参考地址:
https://note.youdao.com/share/?id=8d2cc1c562b7f747d80981400fe66709&type=note#/
http://baijiahao.baidu.com/s?id=1602526804147487796&wfr=spider&for=pc