linux下docker安装及利用该容器部署SpringBoot项目

1、docker安装

安装过程出现的问题:
1、yum安装时提示有另一个程序在使用的解决办法
原因是: yum - updatesd这个服务会时不时的访问网络,如果卡住了(可能虚拟机关机的时候卡了),同时你又在运行yum,就会总是提示你另一程序在访问软件信息
用 rm -f /var/run/yum.pid 杀掉 yum-updatesd 进程就好了

2、解决 “Couldn’t resolve host ‘apt.sw.be’” 错误

进入目录 cd /etc/yum.repos.d/
将 rpmforge.repo为 rpmforge.repo.bak 问题解决

3、Linux进行yum 程序安装时遇到的公钥没有安装的问题解决方法
解决方法:在yum install xxxx 命令之后添加 --nogpgcheck 进行跳过公钥检查安装,完美解决!

开始安装

第一步:安装工具包

sudo yum install -y yum-utils 	

第二步:设置远程仓库

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo	

第三步:安装

sudo yum install docker-ce	

第四步:启动

$ sudo systemctl start docker

或者

$ sudo service docker start
service docker start        #启动docker
chkconfig docker on         #加入开机启动

第五步:查看版本

sudo docker version

结果

Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:03:45 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46d9d
  Built:            Wed Sep 16 17:02:21 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.3.7
  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

第六步:校验

sudo docker run hello-world

执行结果: (注意,结果没那么快出来)

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
78445dd45222: Pull complete
Digest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/	
	

安装完后/var/lib/目录下会生成
docker文件

查看Docker版本

docker --help #帮助
docker -v #简单查看版本
docker version #查看版本
docker info #查看信息

2、利用该容器部署SpringBoot项目

第一步、编写Dockerfile文件

# docker image for springboot file run
# VERSION 1.0.0
# Author: zhangyf
# 基础镜像使用java版本
FROM java:8
# 作者
MAINTAINER eangulee <[email protected]>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为myapp.jar
ADD jaf-0.0.2-SNAPSHOT.jar myapp.jar 
# 运行jar包
RUN bash -c 'touch /myapp.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/myapp.jar"]

配置文件说明:

1、VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。此步骤可选。

2、/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录项目的 jar 文件作为 “myapp.jar” 添加到容器的ENTRYPOINT 执行项目 myapp.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source

3、如果是第一次打包,它会自动下载java 8的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。

第二步、部署文件

在服务器新建一个doc文件夹,将maven打包好的jar包和Dockerfile文件复制到服务器的dock文件夹下

第三步、制作镜像

执行下面命令, 看好,最后面有个"."点!
先要进到dock目录下

docker build -t springbootdemozyfdocker .

-t 参数是指定此镜像的tag名

制作完成后通过docker images命令查看我们制作的镜像

第四步、启动容器

docker run -d -p 8080:9006 springbootdemozyfdocker

-d参数是让容器后台运行
-p 是做端口映射,此时将服务器中的8080端口映射到容器中的9006(项目中端口配置的是9006)端口

第五步、访问

http://你的ip地址:8080

一些命令

启动docker
systemctl start docker

停止docker服务
systemctl stop docker

docker停止后要启动web应用需执行以上第四步、启动容器才能正常访问

猜你喜欢

转载自blog.csdn.net/weixin_38323645/article/details/108843238