Ubuntu下通过docker部署springboot项目

Wesley13
• 阅读 855

Ubuntu下安装docker

安装

安装命令:

sudo apt-get update
sudo apt-get install docker.io

(如果安装失败,也可参考如下网站进行安装:链接

启动

启动命令:

sudo service docker start

测试

测试运行hello-world:

sudo docker run hello-world

运行效果:

Ubuntu下通过docker部署springboot项目

运行效果图

设置docker镜像加速

添加镜像加速地址

编辑daemon.json文件:

sudo vim /etc/docker/daemon.json

添加阿里云加速镜像地址内容:

{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}

重启服务

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker

下载基础镜像

搜索镜像

进入阿里云的镜像仓库搜索自己想要的镜像,链接

阿里云镜像仓库

找到想要的java基础镜像:

java基础镜像

右边有相应的版本,下载自己想要的版本(注:这里的java全部是openjdk,不是oracle
jdk)。

下载镜像

语法:

docker pull [OPTIONS] NAME[:TAG|[@DIGEST](https://my.oschina.net/u/3392911)]

说明:

OPTIONS:参数,例如 ‘-a’,下载所有版本的镜像。
NAME:镜像名称,例如 ‘java’。
TAG:为版本,例如 ‘java:8u111’,java的8u111版本。

实例:

sudo docker pull java:8u111

(注:如果不指定相应的版本,docker则会自动下载最新的版本。)

查看本地镜像

运行命令:

sudo docker images

image

编写Dockerfile

FROM java #基础的镜像
ADD application.yml application.yml #添加配置文件
ADD FaceWeb-1.0.2-SNAPSHOT.jar app.jar #添加项目的jar包,并重命名
EXPOSE 80 #声明端口
VOLUME /tmp #定义匿名卷
#程序的入口点
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar","/app.jar", "--Dspring.config.location=application.yml"]
# Ubuntu 时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

(详情请参考:链接

修改项目配置application.yml

略。

编译镜像

上传文件

在服务器上建立一个文件夹,用于存放docker文件,将文件通过工具全部发送到服务器上。

image

编译

语法:

docker build [OPTIONS] PATH | URL | -

OPTIONS说明:

-f :指定要使用的Dockerfile路径;
-m :设置内存最大值;
--tag, -t:镜像的名字及标签,通常 name:tag 或者 name格式;可以在一次构建中为一个镜像设置多个标签。

实例:

sudo docker build -t faceweb .

(注:详细语法,请查看:链接

image

编译完成后运行查看镜像,就可以看到刚刚编译好的镜像了。

image

启动容器

运行命令

语法:

sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明:

-d:后台运行容器,并返回容器ID;
-p: 端口映射,格式为:主机(宿主)端口:容器端口;
--name:"nginx-lb":为容器指定一个名称;
-e username="ritchie":设置环境变量;
-P:随机端口映射。

(注:详细语法,请查看:链接

实例:

sudo docker run –name faceweb -d -p 80:80 faceweb
  1. 查看运行的容器

语法:

sudo docker ps [OPTIONS]

OPTIONS说明:

-a :显示所有的容器,包括未运行的;
-l :显示最近创建的容器。

(注:详细语法,请查看:链接

实例:

sudo docker ps -a

image

image

可以清楚的看到端口的映射情况和容器的一些详细信息。

到目前为止,docker容器的下载,编译和部署已经完成,下面是容器的一些常用操作介绍。

容器常用操作命令

查看运行的容器

查看容器,复制容器的CONTAINER ID。

停止容器

sudo docker stop CONTAINER

启动容器

sudo docker start CONTAINER

重启容器

sudo docker restart CONTAINER

删除容器

sudo docker rm CONTAINER

(注:删除容器前需要先停止这个容器,删除是不可逆的,谨慎操作。)

查看容器的日志

sudo docker logs [OPTIONS] CONTAINER

OPTIONS说明:

-f : 跟踪日志输出;
-t : 显示时间戳;
--since :显示某个开始时间的所有日志;
--tail :仅列出最新N条容器日志。

实例:

sudo docker logs -f cd4c9b023c46

进入容器

语法:

sudo docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS说明:

-i :即使没有附加也保持STDIN 打开;
-t :分配一个伪终端。

实例:

sudo docker exec -it faceweb /bin/bash

image

镜像的常用操作

删除镜像

语法

sudo docker rmi [OPTIONS] IMAGE [IMAGE...]

OPTIONS说明:

-f :强制删除;
--no-prune :不移除该镜像的过程镜像,默认移除。

实例:

sudo docker rmi faceweb

(注:所有的删除是不可逆的,请请谨慎操作。)

所有的docker命令请参考:链接

本文同步分享在 博客“吟风者”(JianShu)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Ubuntu下部署springboot项目
Ubuntu下安装docker安装安装命令:sudoaptgetupdatesudoaptgetinstalldocker.io(如果安装失败,也可参考如下网站进行安装:链接(https://www.oschina.net/action/GoToLink?ur
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这