centOS 64位 安装Docker及发布Springboot
安装CentOS
官方最新下载地址
1.安装,选择install centos 7,第二荐是带硬件测试,实际意义不大,还有可能会报错。
开始安装
区域及语言选择,如果需要选择中文需要拖到最下面
安装信息摘要
软件选择,我们选择基础设施服务器,附加选项可选。
如果需要可以配置一下网络,其它的都可以不用设置了,如果有多个硬盘需要安装位置。
在安装过程中有有两个选项,一个选项是设置ROOT密码,这个必须配置一下,第二个创建新的用户选项是可选,我们这里忽略就好了。
安装完成后需要手动重启,点击重启系统就安装完成了。
正常开始能看到两个选项,默认选项上短的那项。第二个选项是当系统出现问题恢复才会用到。
当看到localhost login界面即系统已经启动完成。输入用户 回车输入密码即可登录系统。
ifconfig 命令可以查看ip地址
临时设置IP地址:
ifconfig ens33 192.168.1.132
涉及到配置文件,分别是:
/etc/sysconfig/network-scripts/ifcfg-ens33
/etc/resolv.conf
vi /etc/sysconfig/network-scripts/ifcfg-ens33 修改内容如下
添加dns vi /etc/resolv.conf 添加8.8.8.8 和 4.4.4.4 也可以修改为实际NDS,需要向当地运营商获取
重启网络服务
service network restart
测试网络是否可以正常访问外网,如果显示网络表示正常。
方法1
curl -l http://www.baidu.com
方法2
wget http://www.baidu.com
Docker安装
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本
uname -r
使用 root 权限登录 Centos。确保 yum 包更新到最新
sudo yum -y update
如果安装过旧版本的话,卸载旧版本
sudo yum -y remove docker docker-common docker-selinux docker-engine
安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum -y install -y yum-utils device-mapper-persistent-data lvm2
设置yum源,如果遇到错误,有可能是国内无法访问docker源的原因请使用阿里yum做为替代
docker: sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
aliyum: sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
安装docker
由于repo中默认只开启stable仓库,故这里安装的是最新稳定版3:18.09.6-3.e17
sudo yum install docker-ce
启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
至此Docker安装完成。
Docker 发布springboot项目
创建Dockerfile文件内容如下:
FROM java:8
VOLUME /tmp
ADD itechsun-springboot.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
- FROM :表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载
- VOLUME :VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
- ADD :拷贝文件并且重命名(前面是上传jar包的名字,后面是重命名)
- ENTRYPOINT :为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT
这里附送一个远程上传工具。。。 怎么用去查百度rz sz的用法吧。
yum -y install lrzsz
将创建好的Dockerfile文件和jar包上传到服务器,放在同一文件夹下,进入jar包所在文件夹,执行命令
注:后面末尾有一个空格和一个“.”,huangui/springboot huangui是在啊里创建的空间名称,springboot 是创建的镜像的名字,“.”表示当前目录
docker build -t huangui/springboot .
查看生成的镜像
docker images
huangui/springboot 就是我们构建好的镜像,下一步就是运行该镜像
docker run -p 8080:9000 --restart=always -t huangui/springboot
注意:
- -p 指定容器暴露的端口 这里是将本地8080端口绑定到容器的9000端口
- –restart 指定容器停止后的重启策略:no:容器退出时不重启 on-failure:容器故障退出(返回值非零)时重启 always:容器退出时总是重启
- -t, --tty=false, 分配tty设备,该可以支持终端登录,默认为false
- 如果创建时未指定 --restart=always ,可通过update 命令 xxx代表容器的名称或ID
docker update --restart=always xxx
查看运行的容器
docker ps
停止一个正在运行的容器
1、docker stop 此方式常常被翻译为优雅的停止容器
docker stop 容器ID或容器名
参数 -t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
docker stop -t=60 容器ID或容器名
2、docker kill
docker kill 容器ID或容器名 :直接关闭容器
最后在附送一个开始centos 7端口的命令呀。。。
查询端口是否打开,如查看8080端口:
firewall-cmd --query-port=8080/tcp
显示no,显示没有打开咯
下面我们开启80端口:
firewall-cmd --add-port=8080/tcp
显示success代表开启成功。
最后做了这么多。测试一个我们的项目有没有运行咯?
curl -l 192.168.1.132:8080
status 返回403代表项目已经运行只是缺少权限。至此docker 发布springboot2也就完成了。