1 配置docker远程连接端口
打开:
vim /usr/lib/systemd/system/docker.service
搜索:
/ExecStart
原值:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
替换为:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
重启:
systemctl daemon-reload
service docker restart
重启其他服务:
docker restart mysql-test
开启端口:
测试是否配置成功:
curl http://localhost:2375/version
编写DockerFile:
#指定基础镜像,在其上进行定制
FROM java:8
#维护者信息
MAINTAINER zhangqing <1114921671@qq.com>
#这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层。
VOLUME /tmp
#复制上下文目录下的target/demo-1.0.0.jar 到容器里
COPY target/weChat-0.0.1-SNAPSHOT.jar weChat.jar
#bash方式执行,使demo-1.0.0.jar可访问
#RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
RUN bash -c "touch /weChat.jar"
#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8070
#设置变量 JAVA_OPTS
ENV JAVA_OPTS=""
#这样写会以shell方式执行,会替换变量
ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /weChat.jar
#指定容器启动程序及参数 <ENTRYPOINT> "<CMD>"
#ENTRYPOINT ["java","-jar","weChat.jar"]
#启动容器
# docker run --name we-chat -e JAVA_OPTS='-Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M' 60e89934c159
上传镜像:
运行:
docker run --name we-chat -e JAVA_OPTS='-Xmx1344M -Xms1344M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M' 60e89934c159
查看虚拟机参数:
docker exec -it we-chat bash
ps -ef |grep java
端口映射
使用:docker run —name container-name:tag -d -p 服务器端口:Docker 端口 image-name
1.—name:自定义容器名,不指定时,docker 会自动生成一个名称
2.-d:表示后台运行容器
3.image-name:指定运行的镜像名称以及 Tag
4.-p 表示进行服务器与 Docker 容器的端口映射,默认情况下容器中镜像占用的端口是 Docker 容器中的端口与外界是隔绝的,必须进行端口映射才能访问