参考链接1 参考链接2
#修改Docker服务文件 vim /lib/systemd/system/docker.service # 通常使用端口2375与守护进程进行非加密通信,使用端口2376与守护进程进行加密通信。 #修改ExecStart行,添加如下配置 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
[Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker # 注释最初配置 # ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock # 开启远程访问 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ExecReload=/bin/kill -s HUP $MAINPID TimeoutSec=0 RestartSec=2 Restart=always
重新加载配置文件
systemctl daemon-reload 重启服务 systemctl restart docker.service
查看端口是否开启
netstat -antp | grep dockerd #如果找不到netstat命令,使用yum install net-tools安装 [root@administrator ~]# netstat -antp | grep dockerd tcp6 0 0 :::2375 :::* LISTEN 4514/dockerd
直接curl看是否生效,测试通过localhost是否能使用Docker Engine API
curl http://127.0.0.1:2375/info curl http://localhost:2375/version
访问:测试远程能否通过主机IP使用Docker Engine API
从File->Settings->Build,Execution,Deployment->Docker打开配置界面,配置docker,连接到远程docker服务
在pom.xml文件所在同级目录,创建名为Dockerfile的文件
# 基础镜像 FROM openjdk:8 #作者信息 可以不写!!! MAINTAINER author_information #申明一个环境变量 可以不写!!! ENV HOME_PATH /home #指定容器启动时,执行命令会在该目录下执行 可以不写!!! WORKDIR $HOME_PATH #应用构建成功后的jar复制到容器指定目录下 上面都不写的就把$HOME_PATH删除!!!! food_environment_team必须和下面的Image tag生成的镜像名称一样 -0.0.1这个是版本号可以不一样 -SNAPSHOT.jar是固定写法 ADD target/food_environment_team-0.0.1-SNAPSHOT.jar $HOME_PATH/app.jar #指定容器内部端口 可以不写,不写默认是项目中pom文件的端口 EXPOSE 8888 #容器启动时执行的命令 ENTRYPOINT ["java","-jar","app.jar"]
Name: 配置名称(随意) Server: 选择Docker远程连接配置 Build Dockerfile:选择编写的Dockerfile文件 Image tag:设置生成镜像的名称(可以用 镜像名称:0.0.1 这样版本号就是0.0.1) Run:容器运行相关的额外配置 Container name :设置容器名称 Bind ports: 端口绑定 8095:8092(:前面是宿主机端口,也就是虚拟机的端口,就是postman要访问这个端口(可以随便设置),:后面是容器内端口,也就是项目中yml的port。可以在dockerfile另外指定) Bind mounts: 挂载 Before launch: 配置运行前进行的额外操作 clean package -DskipTests :重新编译构建:清理、打包、跳过测试
运行结果如下所示,项目构建成功后,在Docker上部署镜像成功,然后运行容器成功:
登录远程Docker,先后执行docker image和docker ps命令查看镜像和容器情况如下,可见一切正常:
docker save 镜像名字:版本号 > 要打包的名字.tar docker save -o 要打包名字.tar 镜像名字:版本号
docker images
docker ps
全部跟着打就好