前期准备:docker安装
请看上一篇:docker安装(手动和yum源方式)_奔驰的小野码的博客-CSDN博客
创建容器
在联网服务器上首先部署一个docker容器,例如java_backend
下载镜像
输入命令:docker pull centos:7 下载一个centos7的镜像文件
输入命令:docker images 查看镜像文件是否下载成功
创建容器
输入命令:docker run -id --restart=always --name=输入自己想要的名字,这里以java_backend为例 -p 8085:8085 -v /home/java_backend:/home/java_backend centos:7
创建java_backend容器
其中,重要的是:端口映射-p、目录映射-v,
如果要映射多个端口,就多次-p
容器提交为镜像
先将容器停掉
输入命令:docker stop java_backend
将容器提交为一个新镜像
输入命令:docker commit java_backend java
查看镜像
输入命令:docker images
将镜像打包成tar文件
输入命令:docker save -o java.tar java
载入tar文件为镜像
内网环境载入迁移过来的镜像
以java容器为例
docker load -i /home/java_backend/java.tar
docker load:docker载入
-i:(即input)或<表示从文件输入
输入命令:docker image 查看镜像是否载入成功
以载入的镜像生成一个新的容器
输入命令:docker run -id --restart=always --name=java_backend -p 8085:8085 -v /home/java_backend:/home/java_backend java
补充
注意:容器迁移,进行打包时,不回把后端jar包、亲段dist代码,数据库表、jdk一块进行打包,需要在迁移之后,手动进行安装
jdk安装
进入容器命令:docker exec -it java_backend /bin/bash
将jdk放进容器内,通过命令:docker cp jdk* java_backend:/home/java_backend
对jdk进行解压,命令:tar -xvf jdk*.tar
(也可以通过目录映射的方式进行,输入如下命令:chcon -Rt svirt_sandbox_file_t /home/java_backend 将要挂载的目录添加到selinux白名单,格式如下
chcon [-R] [-t type] [-u user] [-r role] 文件或者目录
选顷不参数:
-R :该目录下的所有目录也同时修改;
-t :后面接安全性本文的类型字段,例如 httpd_sys_content_t ;
-u :后面接身份识别,例如 system_u;
-r :后面街觇色,例如 system_r
这样,就不用再将jdk进行复制进容器了)
修改环境变量,输入命令:vi /etc/profile
添加jdk环境变量
export JAVA_HOME=/home/java_backend/jdk1.8.0_221(路径按照实际的来)
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
重启环境变量,输入命令:source /etc/profile
问题:这时退出docker环境变量会失效需要重新执行命令:source /etc/profile
解决方案:
在容器内输入命令:vi /root/.bashrc
将source /etc/profile添加到指定位置
此时退出容器,输入命令:exit
再次进入容器:输入命令:docker exec -it java_backend /bin/bash
再次查看jdk版本:java -version 是成功的