docker 创建镜像及导入导出
194服务器oplus-dts包所在位置:
/home/zhouminglan/docker-io-war/oplus-dts/
194服务器oplus-portal包所在位置:
/home/zhouminglan/docker-io-war/oplus-portal/
194服务器oplus-udp及Dockfile包所在位置:
/home/zhouminglan/docker-io-war/oplus-udp/
使用Dockerfile文件和war包创建docker可执行的镜像
使用方法:
将Dockerfile文件和xxx.war放入同一文件夹即可。
Dockerfile文件
FROM openjdk:8-jre-alpine
ADD oplus-portal.war /oplus-portal.war
EXPOSE 8081 5701/udp
CMD echo "The application will start in 10s..." && \
sleep 10 && \
java -jar /oplus-portal.war
注意:
- 不同的war包打成镜像时,都需要更换一下Dockerfile文件中的包名。
- 将项目中的localhost和127.0.0.1改为真实的ip地址。
打成镜像的命令
- 注意最后的那个点".","oplus-dts/war"表示镜像的名称,随意命名。
docker build -t oplus-dts/war -f Dockerfile .
启动镜像
- 启动镜像
docker run -p 8666:8666 oplus-dts/war
第一个8666表示容器对外的端口,第二个8666表示容器内部服务的端口,'oplus-dts/war'表示镜像名称。
这里端口最终以项目中端口的定义为准(项目中定义的服务的端口的优先级最高)。这里最好都写成同一个端口。
导出镜像
- 查看镜像
sudo docker images
- 选择要打包的镜像,执行打包命令
sudo docker save -o oplus-dts.tar oplus-dts/war
- 'oplus-dts.tar'表示生成的镜像名称。'oplus-dts/war'表示原本的镜像名称。
- 会在当前目录下生成导出文件xxx.tar,然后将此文件下载到本地
导入镜像
- 导入上述打包的镜像
docker load -i oplus-dts.tar
- 注意,导入镜像的时候要把Dockfile文件打的openjdk的镜像一并导入。
查看镜像
docker images
启动镜像
docker run -p 8666:8666 oplus-dts/war
不需要启动openjdk镜像
如果Docker容器启动报(docker宿主机ip通,但是docker里镜像不通的情况)
WARNING: IPv4 forwarding is disabled. Networking will not work
-
解决办法:
vi /etc/sysctl.conf
或者
vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务
systemctl restart network
查看是否修改成功
sysctl net.ipv4.ip_forward
如果返回为“net.ipv4.ip_forward = 1”则表示成功了