1 配置docker远程连接端口

  1. 打开:
  2. vim /usr/lib/systemd/system/docker.service
  3. 搜索:
  4. /ExecStart
  5. 原值:
  6. ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
  7. 替换为:
  8. ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

image.png
重启:

  1. systemctl daemon-reload
  2. service docker restart

重启其他服务:

  1. docker restart mysql-test

开启端口:
image.png
测试是否配置成功:

  1. curl http://localhost:2375/version

image.png
idea配置:
image.png

编写DockerFile:
  1. #指定基础镜像,在其上进行定制
  2. FROM java:8
  3. #维护者信息
  4. MAINTAINER zhangqing <1114921671@qq.com>
  5. #这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层。
  6. VOLUME /tmp
  7. #复制上下文目录下的target/demo-1.0.0.jar 到容器里
  8. COPY target/weChat-0.0.1-SNAPSHOT.jar weChat.jar
  9. #bash方式执行,使demo-1.0.0.jar可访问
  10. #RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
  11. RUN bash -c "touch /weChat.jar"
  12. #声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
  13. EXPOSE 8070
  14. #设置变量 JAVA_OPTS
  15. ENV JAVA_OPTS=""
  16. #这样写会以shell方式执行,会替换变量
  17. ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /weChat.jar
  18. #指定容器启动程序及参数 <ENTRYPOINT> "<CMD>"
  19. #ENTRYPOINT ["java","-jar","weChat.jar"]
  20. #启动容器
  21. # docker run --name we-chat -e JAVA_OPTS='-Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M' 60e89934c159

上传镜像:
image.png
image.png

运行:

  1. docker run --name we-chat -e JAVA_OPTS='-Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M' 60e89934c159

image.png
查看虚拟机参数:

  1. docker exec -it we-chat bash
  2. ps -ef |grep java

image.png

端口映射
使用:docker run —name container-name:tag -d -p 服务器端口:Docker 端口 image-name
1.—name:自定义容器名,不指定时,docker 会自动生成一个名称
2.-d:表示后台运行容器
3.image-name:指定运行的镜像名称以及 Tag
4.-p 表示进行服务器与 Docker 容器的端口映射,默认情况下容器中镜像占用的端口是 Docker 容器中的端口与外界是隔绝的,必须进行端口映射才能访问