Docker 基礎介紹與微服務應用

docker.jpg

Docker 基礎介紹與微服務應用

Docker簡介

Docker是一個開源的容器引擎缀匕,它有助于更快地交付應用艺蝴。 Docker可將應用程序和基礎設施層隔離腿准,并且能將基礎設施當作程序一樣進行管理贺嫂。使用 Docker可更快地打包滓鸠、測試以及部署應用程序,并可以縮短從編寫到部署運行代碼的周期第喳。

Docker的優(yōu)點如下:
  • 簡化程序

Docker 讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中糜俗,然后發(fā)布到任何流行的 Linux 機器上,便可以實現(xiàn)虛擬化曲饱。Docker改變了虛擬化的方式悠抹,使開發(fā)者可以直接將自己的成果放Docker中進行管理。方便快捷已經(jīng)是Docker的最大優(yōu)勢扩淀,過去需要用數(shù)天乃至數(shù)周的 任務楔敌,在Docker容器的處理下,只需要數(shù)秒就能完成引矩。

  • 簡化部署

Docker 鏡像中包含了運行環(huán)境和配置梁丘,所以 Docker 可以簡化部署多種應用實例工作侵浸。比如 Web 應用旺韭、后臺應用氛谜、數(shù)據(jù)庫應用、大數(shù)據(jù)應用比如 Hadoop 集群区端、消息隊列等等都可以打包成一個鏡像部署值漫。

  • 降低成本

一方面,云計算時代到來织盼,使開發(fā)者不必為了追求效果而配置高額的硬件Docker 改變了高性能必然高價格的思維定勢杨何。Docker 與云的結合,讓云空間得到更充分的利用沥邻。不僅解決了硬件管理的問題危虱,也改變了虛擬化的方式。

Docker相關概念:
  • Docker daemon( Docker守護進程)

Docker daemon是一個運行在宿主機( DOCKER-HOST)的后臺進程唐全“u危可通過
Docker客戶端與之通信。

  • Client( Docker客戶端)

Docker客戶端是 Docker的用戶界面邮利,它可以接受用戶命令和配置標識弥雹,并Docker daemon通信。docker build等都是 Docker的相關命令延届。

  • Images( Docker鏡像

Docker鏡像是一個只讀模板剪勿,它包含創(chuàng)建 Docker容器的說明。它和系統(tǒng)安裝光盤有點像方庭,使用系統(tǒng)安裝光盤可以安裝系統(tǒng)厕吉,同理,使用Docker鏡像可以運行 Docker鏡像中的程序械念。

  • Container(容器)

容器是鏡像的可運行實例赴涵。鏡像和容器的關系有點類似于面向對象中,類和對象的關系订讼∷璐埽可通過 Docker API或者 CLI命令來啟停、移動欺殿、刪除容器寄纵。

  • Registry

Docker Registry是一個集中存儲與分發(fā)鏡像的服務。構建完 Docker鏡像后脖苏,就可在當前宿主機上運行程拭。但如果想要在其他機器上運行這個鏡像,就需要手動復制棍潘。此時可借助 Docker Registry來避免鏡像的手動復制恃鞋。一個 Docker Registry可包含多個 Docker倉庫崖媚,每個倉庫可包含多個鏡像標簽,每個標簽對應一個 Docker鏡像恤浪。這跟 Maven的倉庫有點類似畅哑,如果把 Docker Registry比作 Maven倉庫的話,那么Docker倉庫就可理解為某jar包的路徑水由,而鏡像標簽則可理解為jar包的版本號荠呐。

Docker 的安裝

Docker 是一個開源的商業(yè)產(chǎn)品,有兩個版本:社區(qū)版(Community Edition砂客,縮寫為
CE)和企業(yè)版(Enterprise Edition泥张,縮寫為 EE)。企業(yè)版包含了一些收費服務鞠值,個人開發(fā)者一般用不到媚创。下面的介紹都針對社區(qū)版。

Docker CE 的安裝請參考官方文檔彤恶。

下面以CentOS為例安裝Docker钞钙。

1、Docker 要求 CentOS 系統(tǒng)的內核版本高于 3.10 粤剧,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 歇竟。

通過 uname -r 命令查看你當前的內核版本

[root@node-100 software]#  uname -r
3.10.0-327.el7.x86_64

2、使用 root 權限登錄 Centos抵恋。確保 yum 包更新到最新焕议。

[root@node-100 software]# yum -y update

3、卸載舊版本(如果安裝過舊版本的話)

[root@node-100 software]# yum remove docker docker-common docker-selinux docker-engine

4弧关、安裝需要的軟件包盅安, yum-util 提供yum-config-manager功能,另外兩個是
devicemapper驅動依賴的

 [root@node-100 software]# yum install -y yum-utils device-mapper-persistent-data lvm2

5世囊、設置yum源

[root@node-100 software]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6别瞭、可以查看所有倉庫中所有docker版本,并選擇特定版本安裝

[root@node-100 software]# yum list docker-ce --showduplicates | sort -r

7株憾、安裝docker蝙寨,#由于repo中默認只開啟stable倉庫,故這里安裝的是最
新穩(wěn)定版18.03.1

[root@node-100 software]# sudo yum install docker-ce-18.03.1.ce

安裝完畢:

已安裝:
  docker-ce.x86_64 0:18.03.1.ce-1.el7.centos                                                                                                                                

作為依賴被安裝:
  audit-libs-python.x86_64 0:2.8.4-4.el7   checkpolicy.x86_64 0:2.5-8.el7         container-selinux.noarch 2:2.74-1.el7   libcgroup.x86_64 0:0.41-20.el7                  
  libsemanage-python.x86_64 0:2.5-14.el7   libtool-ltdl.x86_64 0:2.4.2-22.el7_3   pigz.x86_64 0:2.3.3-1.el7.centos        policycoreutils-python.x86_64 0:2.5-29.el7_6.1  
  python-IPy.noarch 0:0.75-6.el7           setools-libs.x86_64 0:3.3.8-4.el7     

完畢嗤瞎!

8墙歪、啟動并加入開機啟動

[root@node-100 software]# systemctl start docker
[root@node-100 software]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@node-100 software]# 

9、驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)

[root@node-100 software]# docker version
Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Thu Apr 26 07:20:16 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Thu Apr 26 07:23:58 2018
  OS/Arch:      linux/amd64
  Experimental: false
[root@node-100 software]# 

10贝奇、卸載docker(如有需要)

 yum -y remove docker-engine
注意:需要配置鏡像加速器

我們可以借助阿里云的鏡像加速器虹菲,登錄阿里云

https://cr.console.aliyun.com/cn-hangzhou/mirrors

登錄后可以在容器鏡像服務中找到鏡像加速器

然后再操作文檔中找到如下內容

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://1glxkz12.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

然后根據(jù)上面顯示的,一步步執(zhí)行

sudo mkdir -p /etc/docker

cd /etc/docker

vim daemon.json

新增

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

wq保存 然后重啟

sudo systemctl daemon-reload
sudo systemctl restart docker
Docker常用命令

鏡像相關命令

1掉瞳、搜索鏡像

可使用 docker search命令搜索存放在 Docker Hub中的鏡像毕源。

docker search java

執(zhí)行該命令后浪漠, Docker就會在Docker Hub中搜索含有 java這個關鍵詞的鏡像倉庫。

[root@node-100 docker]#  docker search java
NAME                                         DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
node                                         Node.js is a JavaScript-based platform for s…   7028                [OK]                
tomcat                                       Apache Tomcat is an open source implementati…   2283                [OK]                
java                                         Java is a concurrent, class-based, and objec…   1946                [OK]                
openjdk                                      OpenJDK is an open-source implementation of …   1509                [OK]                
ghost                                        Ghost is a free and open source blogging pla…   926                 [OK]                
anapsix/alpine-java                          Oracle Java 8 (and 7) with GLIBC 2.28 over A…   389                                     [OK]
jetty                                        Jetty provides a Web server and javax.servle…   288                 [OK]                
couchdb                                      CouchDB is a database that uses JSON for doc…   261                 [OK]                
ibmjava                                      Official IBM? SDK, Java Technology Edition …   64                  [OK]                
groovy                                       Apache Groovy is a multi-faceted language fo…   62                  [OK]                
lwieske/java-8                               Oracle Java 8 Container - Full + Slim - Base…   43                                      [OK]
cloudbees/jnlp-slave-with-java-build-tools   Extends cloudbees/java-build-tools docker im…   25                                      [OK]
zabbix/zabbix-java-gateway                   Zabbix Java Gateway                             16                                      [OK]
frekele/java                                 docker run --rm --name java frekele/java        13                                      [OK]
davidcaste/alpine-java-unlimited-jce         Oracle Java 8 (and 7) with GLIBC 2.21 over A…   11                                      [OK]
blacklabelops/java                           Java Base Images.                               8                                       [OK]
fabric8/s2i-java                             S2I Builder Image for plain Java applications   7                                       
rightctrl/java                               Oracle Java                                     3                                       [OK]
appuio/s2i-maven-java                        S2I Builder with Maven and Java                 2                                       [OK]
cfje/java-test-applications                  Java Test Applications CI Image                 1                                       
cfje/java-resource                           Java Concourse Resource                         1                                       
cfje/java-buildpack                          Java Buildpack CI Image                         1                                       
appuio/s2i-gradle-java                       S2I Builder with Gradle and Java                1                                       [OK]
thingswise/java-docker                       Java + dcd                                      0                                       [OK]
cfje/cf-java-client                          Cloud Foundry Java Client CI Image              0                                       

以上列表包含五列霎褐,含義如下:

  • NAME:鏡像倉庫名稱址愿。
  • DESCRIPTION:鏡像倉庫描述。
  • STARS:鏡像倉庫收藏數(shù)瘩欺,表示該鏡像倉庫的受歡迎程度必盖,類似于 GitHub的stars0
  • OFFICAL:表示是否為官方倉庫拌牲,該列標記為[0K]的鏡像均由各軟件的官方項目組創(chuàng)建和維護俱饿。
  • AUTOMATED:表示是否是自動構建的鏡像倉庫。
2塌忽、下載鏡像

使用命令docker pull命令即可從 Docker Registry上下載鏡像

docker pull java:8

執(zhí)行該命令后拍埠,Docker會從 Docker Hub中的 java倉庫下載最新版本的 Java鏡像。如果要下載指定版本則在java后面加冒號指定版本土居,例如:docker pull java:8

3枣购、列出鏡像
[root@node-100 docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

以上列表含義如下

  • REPOSITORY:鏡像所屬倉庫名稱。
  • TAG:鏡像標簽擦耀。默認是 latest,表示最新棉圈。
  • IMAGE ID:鏡像 ID,表示鏡像唯一識眷蜓。
  • CREATED:鏡像創(chuàng)建時間分瘾。
  • SIZE: 鏡像大小。
4吁系、刪除本地

使用 docker rmi命令即可刪除指定鏡像

docker rmi java
容器相關命令
1德召、新建并啟動容器

使用以下docker run命令即可新建并啟動一個容器,該命令是最常用的命令汽纤,它有很多選項上岗,下面將列舉一些常用的選項。

-d選項:表示后臺運行

-P選項:隨機端口映射

-p選項:指定端口映射蕴坪,有以下四種格式肴掷。

-- ip:hostPort:containerPort

-- ip::containerPort

-- hostPort:containerPort

-- containerPort

--net選項:指定網(wǎng)絡模式,該選項有以下可選參數(shù):

--net=bridge:默認選項背传,表示連接到默認的網(wǎng)橋呆瞻。
--net=host:容器使用宿主機的網(wǎng)絡。
--net=container:NAME-or-ID:告訴 Docker讓新建的容器使用已有容器的網(wǎng)絡配置续室。
--net=none:不配置該容器的網(wǎng)絡栋烤,用戶可自定義網(wǎng)絡配

例如:

docker run -d -p 91:80 nginx

這樣就能啟動一個 Nginx容器。

docker run添加了兩個參數(shù)挺狰,含義如下:

-d 后臺運行
-p 宿主機端口:容器端口 #開放容器端口到宿主機端口

訪問 http://192.168.5.100:91/明郭,將會看到nginx的主界面如下:

Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

需要注意的是买窟,使用 docker run命令創(chuàng)建容器時,會先檢查本地是否存在指定鏡像薯定。如果本地不存在該名稱的鏡像Docker就會自動從 Docker Hub下載鏡像并啟動一個 Docker容器始绍。

[root@node-100 docker]# docker run -d -p 91:80 nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
6ae821421a7d: Pull complete 
da4474e5966c: Pull complete 
eb2aec2b9c9f: Pull complete 
Digest: sha256:dd2d0ac3fff2f007d99e033b64854be0941e19a2ad51f174d9240dda20d9f534
Status: Downloaded newer image for nginx:latest
6b3eead5d213dd274b92256965063557b1d7e5b55e273de08711ce1cb42debc7
[root@node-100 docker]# 
2、列出容器

用 docker ps命令即可列出運行中的容器

[root@node-100 docker]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
6b3eead5d213        nginx               "nginx -g 'daemon of…"   2 minutes ago       Up About a minute   0.0.0.0:91->80/tcp   admiring_nobel
[root@node-100 docker]# 

如需列出所有容器(包括已停止的容器)话侄,可使用-a參數(shù)亏推。該列表包含了7列,含義如下

  • CONTAINER_ID:表示容器 ID年堆。
  • IMAGE:表示鏡像名稱吞杭。
  • COMMAND:表示啟動容器時運行的命令。
  • CREATED:表示容器的創(chuàng)建時間变丧。
  • STATUS:表示容器運行的狀態(tài)芽狗。UP表示運行中, Exited表示已停止痒蓬。
  • PORTS:表示容器對外的端口號童擎。
  • NAMES:表示容器名稱。該名稱默認由 Docker自動生成攻晒,也可使用 docker run命令的--name選項自行指定顾复。
3、停止容器

使用 docker stop命令鲁捏,即可停止容器

[root@node-100 docker]# docker stop 6b3eead5d213
6b3eead5d213
[root@node-100 docker]# 

其中6b3eead5d213是容器 ID,當然也可使用 docker stop容器名稱來停止指定容器

4芯砸、強制停止容器

可使用 docker kill命令發(fā)送 SIGKILL信號來強制停止容器

[root@node-100 docker]#  docker kill 6b3eead5d213
5、啟動已停止的容器

使用docker run命令碴萧,即可新建并啟動一個容器乙嘀。對于已停止的容器,可使用 docker
start命令來啟動

[root@node-100 docker]# docker start 6b3eead5d213
6b3eead5d213
[root@node-100 docker]# 
6破喻、查看容器所有信息
[root@node-100 docker]# docker inspect 6b3eead5d213
7虎谢、查看容器日志
[root@node-100 docker]# docker container logs 6b3eead5d213
192.168.5.1 - - [16/Feb/2019:10:14:57 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" "-"
2019/02/16 10:14:58 [error] 5#5: *3 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.5.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.5.100:91"
192.168.5.1 - - [16/Feb/2019:10:14:58 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" "-"
[root@node-100 docker]# 
8、查看容器里的進程
[root@node-100 docker]# docker top 6b3eead5d213
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                39956               39944               0                   18:21               ?                   00:00:00            nginx: master process nginx -g daemon off;
101                 39984               39956               0                   18:21               ?                   00:00:00            nginx: worker process
[root@node-100 docker]# 
9曹质、進入容器

使用docker container exec命令用于進入一個正在運行的docker容器婴噩。如果docker run命令運行容器的時候,沒有使用-it參數(shù)羽德,就要用這個命令進入容器几莽。一旦進入了容器,就可以在容器的 Shell 執(zhí)行命令了

[root@node-100 docker]# docker container exec -it 6b3eead5d213 /bin/bash
root@6b3eead5d213:/# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
root@6b3eead5d213:/# 

exit退出

10宅静、刪除容器

使用 docker rm命令即可刪除指定容器

[root@node-100 docker]# docker rm 6b3eead5d213

該命令只能刪除已停止的容器章蚣,如需刪除正在運行的容器,可使用-f參數(shù)

將微服務運行在docker上
使用Dockerfile構建Docker鏡像

Dockerfile是一個文本文件姨夹,其中包含了若干條指令纤垂,指令描述了構建鏡像的細節(jié)先來編寫一個最簡單的Dockerfile矾策,以上文下載的Nginx鏡像為例,來編寫一Dockerfile修改該nginx鏡像的首頁

新建一個目錄
mkdir -p /usr/local/docker/app
cd /usr/local/docker/app
新建文件
vim Dockerfile
添加以下兩行內容
from nginx
run echo '<h1>this is my nginx!</h1>' > /usr/share/nginx/html/index.html

該Dockerfile非常簡單峭沦,其中的 FORM贾虽、 RUN都是 Dockerfile的指令寇仓。 FROM指令用于指定基礎鏡像笤虫, RUN指令用于執(zhí)行命令。

在Dockerfile所在路徑執(zhí)行以下命令構建鏡像:
[root@node-100 app]# docker build -t nginx:demo .
Sending build context to Docker daemon  2.048kB


Step 1/2 : from nginx
 ---> f09fe80eb0e7
Step 2/2 : run echo '<h1>this is my nginx!</h1>' > /usr/share/nginx/html/index.html
 ---> Running in 20dda34eb953


Removing intermediate container 20dda34eb953
 ---> a838995d130c
Successfully built a838995d130c
Successfully tagged nginx:demo
[root@node-100 app]# 

其中眼坏,-t指定鏡像名字菇肃,命令最后的點(.)表示Dockerfile文件所在路徑

執(zhí)行以下命令地粪,即可使用該鏡像啟動一個 Docker容器
[root@node-100 app]# docker run -d -p 92:80 nginx:demo
0134ab93afa5dee00097e67bf02a7f13c8a8081418d030ef93eabda0bcc7f5cc
訪問http://192.168.5.100:92/ 進行查看,顯示如下
this is my nginx!
Dockerfile常用指令
命令 描述
FROM 基礎鏡像文件
RUN 構建鏡像階段執(zhí)行命令ADD <src> <dest> 添加文件巷送,從src目錄復制文件到容器的dest驶忌,其中 src可以是Dockerfile所在目錄的相對路徑矛辕,也可以是一個 URL,還可以是一個壓縮包
COPY 拷貝文件笑跛,和ADD命令類似,但不支持URL和壓縮包
CMD 容器啟動后執(zhí)行命令
EXPOSE 聲明容器在運行時對外提供的服務端口
WORKDIR 指定容器工作路徑
ENV 指定環(huán)境變量
ENTRYPINT 容器入口聊品, ENTRYPOINT和 CMD指令的目的一樣飞蹂,都是指定Docker容器啟動時執(zhí)行的命令,可多次設置翻屈,但只有最后一個有效陈哑。
USER 該指令用于設置啟動鏡像時的用戶或者 UID,寫在該指令后的 RUN、CMD以及ENTRYPOINT指令都將使用該用戶執(zhí)行
VOLUME 指定掛載點伸眶,該指令使容器中的一個目錄具有持久化存儲的功能惊窖,該目錄可被容器本身使用,也可共享給其他容器厘贼。當容器中的應用有持久化數(shù)據(jù)的需求時可以在 Dockerfile中使用該指令界酒。格式為:VOLUME["/data"]。
注意:

RUN命令在 image 文件的構建階段執(zhí)行嘴秸,執(zhí)行結果都會打包進入 image 文件毁欣;
CMD命令則是在容器啟動后執(zhí)行。另外岳掐,一個 Dockerfile 可以包含多個RUN命令凭疮,但是只能有一個CMD命令。注意串述,指定了CMD命令以后执解,docker container run命令就不能附加命令了(比如前面
的/bin/bash),否則它會覆蓋CMD命令

使用Dockerfile構建微服務鏡像

為了方便纲酗,去 https://start.spring.io/
創(chuàng)建一個簡單的SpringBoot項目衰腌,maven編譯成jar

下面開始將可運行jar包構建成docker鏡像
創(chuàng)建一個測試目錄
[root@node-100 docker]# mkdir springboot
[root@node-100 docker]# cd springboot/
[root@node-100 springboot]# pwd
/usr/local/docker/springboot
[root@node-100 springboot]#
上傳jar包到該目錄逝淹,在jar包所在目錄創(chuàng)建名為Dockerfile的文件
[root@node-100 springboot]# vim Dockerfile
新增如下內容
# 基于哪個鏡像
From java:8
# 將本地文件夾掛載到當前容器
VOLUME /tmp
# 復制文件到容器
ADD springboot-demo-0.0.1-SNAPSHOT.jar /springboot.jar
# 聲明需要暴露的端口
EXPOSE 10086
# 配置容器啟動后執(zhí)行的命令
ENTRYPOINT ["java","-jar","/springboot.jar"]
保存后使用docker build命令構建
[root@node-100 springboot]# docker build -t springboot:0.0.1 .
Sending build context to Docker daemon  16.73MB
Step 1/5 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete 
fce5728aad85: Pull complete 
76610ec20bf5: Pull complete 
60170fec2151: Pull complete 
e98f73de8f0d: Pull complete 
11f7af24ed9c: Pull complete 
49e2d6393f32: Pull complete 
bb9cdec9c7f3: Pull complete 
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8
 ---> d23bdf5b1b1b
Step 2/5 : VOLUME /tmp
 ---> Running in 030476e68207
Removing intermediate container 030476e68207
 ---> e1928fb571dc
Step 3/5 : ADD springboot-demo-0.0.1-SNAPSHOT.jar /springboot.jar
 ---> 942309050024
Step 4/5 : EXPOSE 8761
 ---> Running in ddf0e47c7be0
Removing intermediate container ddf0e47c7be0
 ---> 3b4bb5b9da39
Step 5/5 : ENTRYPOINT ["java","-jar","/springboot.jar"]
 ---> Running in 842ec587196a
Removing intermediate container 842ec587196a
 ---> 966885bc8baa
Successfully built 966885bc8baa
Successfully tagged springboot:0.0.1
[root@node-100 springboot]# 
啟動鏡像,加-d可在后臺啟動
[root@node-100 springboot]# docker run -p 8761:8761 springboot:0.0.1

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v2.2.0.BUILD-SNAPSHOT)

2019-02-16 16:24:26.512  INFO 1 --- [           main] c.d.s.s.SpringbootDemoApplication        : Starting SpringbootDemoApplication v0.0.1-SNAPSHOT on e6429e81d454 with PID 1 (/springboot.jar started by root in /)
2019-02-16 16:24:26.530  INFO 1 --- [           main] c.d.s.s.SpringbootDemoApplication        : No active profile set, falling back to default profiles: default
2019-02-16 16:24:32.404  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2019-02-16 16:24:34.451  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-02-16 16:24:34.452  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.16]
2019-02-16 16:24:34.485  INFO 1 --- [           main] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib]
2019-02-16 16:24:34.665  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-02-16 16:24:34.665  INFO 1 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 7291 ms
2019-02-16 16:24:36.307  INFO 1 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2019-02-16 16:24:37.168  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2019-02-16 16:24:37.176  INFO 1 --- [           main] c.d.s.s.SpringbootDemoApplication        : Started SpringbootDemoApplication in 13.283 seconds (JVM running for 16.657)

啟動成功桶唐。


如果問題栅葡,歡迎留言進行交流:)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末尤泽,一起剝皮案震驚了整個濱河市欣簇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坯约,老刑警劉巖熊咽,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異闹丐,居然都是意外死亡横殴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門卿拴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衫仑,“玉大人,你說我怎么就攤上這事堕花∥挠” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵缘挽,是天一觀的道長瞄崇。 經(jīng)常有香客問我,道長壕曼,這世上最難降的妖魔是什么苏研? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮腮郊,結果婚禮上摹蘑,老公的妹妹穿的比我還像新娘。我一直安慰自己伴榔,他們只是感情好纹蝴,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著踪少,像睡著了一般塘安。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上援奢,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天兼犯,我揣著相機與錄音,去河邊找鬼。 笑死切黔,一個胖子當著我的面吹牛砸脊,可吹牛的內容都是我干的。 我是一名探鬼主播纬霞,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼凌埂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了诗芜?” 一聲冷哼從身側響起瞳抓,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伏恐,沒想到半個月后孩哑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡翠桦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年横蜒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片销凑。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡丛晌,死狀恐怖,靈堂內的尸體忽然破棺而出闻鉴,到底是詐尸還是另有隱情茵乱,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布孟岛,位于F島的核電站,受9級特大地震影響督勺,放射性物質發(fā)生泄漏渠羞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一智哀、第九天 我趴在偏房一處隱蔽的房頂上張望次询。 院中可真熱鬧,春花似錦瓷叫、人聲如沸屯吊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盒卸。三九已至,卻和暖如春次氨,著一層夾襖步出監(jiān)牢的瞬間蔽介,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留虹蓄,地道東北人犀呼。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像薇组,于是被迫代替她去往敵國和親外臂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內容