日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springboot10(docker)

發(fā)布時間:2025/3/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot10(docker) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一 Docker

1 what's the Docker?

? Docker是一個開源的應(yīng)用容器引擎,輕量級容器技術(shù)。

? Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個輕量級、可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。

? 容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。

2 Docker的應(yīng)用場景

  • Web 應(yīng)用的自動化打包和發(fā)布。
  • 自動化測試和持續(xù)集成、發(fā)布。
  • 在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫或其他的后臺應(yīng)用。
  • 從頭編譯或者擴展現(xiàn)有的 OpenShift 或 Cloud Foundry 平臺來搭建自己的 PaaS 環(huán)境。

3 Docker 的優(yōu)點

  • 1、簡化程序:
    Docker 讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,便可以實現(xiàn)虛擬化。Docker改變了虛擬化的方式,使開發(fā)者可以直接將自己的成果放入Docker中進行管理。方便快捷已經(jīng)是 Docker的最大優(yōu)勢,過去需要用數(shù)天乃至數(shù)周的 任務(wù),在Docker容器的處理下,只需要數(shù)秒就能完成。
  • 2、避免選擇恐懼癥:
    如果你有選擇恐懼癥,還是資深患者。那么你可以使用 Docker 打包你的糾結(jié)!比如 Docker 鏡像;Docker 鏡像中包含了運行環(huán)境和配置,所以 Docker 可以簡化部署多種應(yīng)用實例工作。比如 Web 應(yīng)用、后臺應(yīng)用、數(shù)據(jù)庫應(yīng)用、大數(shù)據(jù)應(yīng)用比如 Hadoop 集群、消息隊列等等都可以打包成一個鏡像部署。
  • 3、節(jié)省開支:
    一方面,云計算時代到來,使開發(fā)者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與云的結(jié)合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。

4 相關(guān)Docker文檔

二 Docker核心概念

1、docker主機:安裝了docker程序的機器(Docker直接安裝在操作系統(tǒng)之上)

2、docker客戶端:連接docker主機進行操作

3、docker倉庫:用來保存打包好的鏡像

4、docker鏡像:打包好的軟件

5、docker容器:鏡像啟動后的實例稱為一個容器

Linux默認安裝的docker版本是社區(qū)版-ce 免費的

三 Docker安裝

安裝 Docker

從 2017 年 3 月開始 docker 在原來的基礎(chǔ)上分為兩個分支版本: Docker CE 和 Docker EE。

Docker CE 即社區(qū)免費版,Docker EE 即企業(yè)版,強調(diào)安全,但需付費使用。

本文介紹 Docker CE 的安裝使用。

移除舊的版本:

$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine

安裝一些必要的系統(tǒng)工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加軟件源信息:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 緩存:

sudo yum makecache fast

安裝 Docker-ce:

sudo yum -y install docker-ce

啟動 Docker 后臺服務(wù)

sudo systemctl start docker

使用腳本安裝 Docker

1、使用 sudo 或 root 權(quán)限登錄 Centos。

2、確保 yum 包更新到最新。

$ sudo yum update

3、執(zhí)行 Docker 安裝腳本。

$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh

執(zhí)行這個腳本會添加 docker.repo 源并安裝 Docker。

4、啟動 Docker 進程。

sudo systemctl start docker

5、驗證 docker 是否安裝成功并在容器中執(zhí)行一個測試的鏡像。

$ sudo docker run hello-world docker ps

到此,Docker 在 CentOS 系統(tǒng)的安裝完成。


鏡像加速

鑒于國內(nèi)網(wǎng)絡(luò)問題,后續(xù)拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來解決,我使用的是網(wǎng)易的鏡像地址:http://hub-mirror.c.163.com。

新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 來配置 Daemon。

請在該配置文件中加入(沒有該文件的話,請先建一個):

{"registry-mirrors": ["http://hub-mirror.c.163.com"] }

刪除 Docker CE

執(zhí)行以下命令來刪除 Docker CE:

$ sudo yum remove docker-ce $ sudo rm -rf /var/lib/docker

使用阿里云的鏡像加速

在自己的阿里云帳號下找到

1. 安裝/升級Docker客戶端

推薦安裝1.10.0以上版本的Docker客戶端,參考文檔 docker-ce

2. 配置鏡像加速器

針對Docker客戶端版本大于 1.10.0 的用戶

您可以通過修改daemon配置文件/etc/docker/daemon.json來使用加速器

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

Docker Hub

四 鏡像使用

列出鏡像列表

我們可以使用 docker images 來列出本地主機上的鏡像。

runoob@runoob:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB php 5.6 f40e9e0f10c8 9 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B training/webapp latest 6fae60ef3446 11 months ago 348.8 MB

各個選項說明:

  • REPOSITORY:表示鏡像的倉庫源
  • TAG:鏡像的標簽
  • IMAGE ID:鏡像ID
  • CREATED:鏡像創(chuàng)建時間
  • SIZE:鏡像大小

同一倉庫源可以有多個 TAG,代表這個倉庫源的不同個版本,如ubuntu倉庫源里,有15.10、14.04等多個不同的版本,我們使用 REPOSITORY:TAG 來定義不同的鏡像。

所以,我們?nèi)绻褂冒姹緸?5.10的ubuntu系統(tǒng)鏡像來運行容器時,命令如下:

runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash root@d77ccb2e5cca:/#

如果要使用版本為14.04的ubuntu系統(tǒng)鏡像來運行容器時,命令如下:

runoob@runoob:~$ docker run -t -i ubuntu:14.04 /bin/bash root@39e968165990:/#

如果你不指定一個鏡像的版本標簽,例如你只使用 ubuntu,docker 將默認使用 ubuntu:latest 鏡像。


獲取一個新的鏡像

當我們在本地主機上使用一個不存在的鏡像時 Docker 就會自動下載這個鏡像。如果我們想預(yù)先下載這個鏡像,我們可以使用 docker pull 命令來下載它。

Crunoob@runoob:~$ docker pull ubuntu:13.10 13.10: Pulling from library/ubuntu 6599cadaf950: Pull complete 23eda618d451: Pull complete f0be3084efe9: Pull complete 52de432f084b: Pull complete a3ed95caeb02: Pull complete Digest: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3 Status: Downloaded newer image for ubuntu:13.10

下載完成后,我們可以直接使用這個鏡像來運行容器。


查找鏡像

我們可以從 Docker Hub 網(wǎng)站來搜索鏡像,Docker Hub 網(wǎng)址為: https://hub.docker.com/

我們也可以使用 docker search 命令來搜索鏡像。比如我們需要一個httpd的鏡像來作為我們的web服務(wù)。我們可以通過 docker search 命令搜索 httpd 來尋找適合我們的鏡像。

runoob@runoob:~$ docker search httpd

NAME:鏡像倉庫源的名稱

DESCRIPTION:鏡像的描述

OFFICIAL:是否docker官方發(fā)布


拖取鏡像

我們決定使用上圖中的httpd 官方版本的鏡像,使用命令 docker pull 來下載鏡像。

runoob@runoob:~$ docker pull httpd Using default tag: latest latest: Pulling from library/httpd 8b87079b7a06: Pulling fs layer a3ed95caeb02: Download complete 0d62ec9c6a76: Download complete a329d50397b9: Download complete ea7c1f032b5c: Waiting be44112b72c7: Waiting

下載完成后,我們就可以使用這個鏡像了。

runoob@runoob:~$ docker run httpd

創(chuàng)建鏡像

當我們從docker鏡像倉庫中下載的鏡像不能滿足我們的需求時,我們可以通過以下兩種方式對鏡像進行更改。

  • 1.從已經(jīng)創(chuàng)建的容器中更新鏡像,并且提交這個鏡像
  • 2.使用 Dockerfile 指令來創(chuàng)建一個新的鏡像

更新鏡像

更新鏡像之前,我們需要使用鏡像來創(chuàng)建一個容器。

runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash root@e218edb10161:/#

在運行的容器內(nèi)使用 apt-get update 命令進行更新。

在完成操作之后,輸入 exit命令來退出這個容器。

此時ID為e218edb10161的容器,是按我們的需求更改的容器。我們可以通過命令 docker commit來提交容器副本。

runoob@runoob:~$ docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8

各個參數(shù)說明:

  • -m:提交的描述信息
  • -a:指定鏡像作者
  • e218edb10161:容器ID
  • runoob/ubuntu:v2:指定要創(chuàng)建的目標鏡像名

我們可以使用 docker images 命令來查看我們的新鏡像 runoob/ubuntu:v2

runoob@runoob:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE runoob/ubuntu v2 70bf1840fd7c 15 seconds ago 158.5 MB ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB php 5.6 f40e9e0f10c8 9 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B training/webapp latest 6fae60ef3446 12 months ago 348.8 MB

使用我們的新鏡像 runoob/ubuntu 來啟動一個容器

runoob@runoob:~$ docker run -t -i runoob/ubuntu:v2 /bin/bash root@1a9fbdeb5da3:/#

構(gòu)建鏡像

我們使用命令 docker build , 從零開始來創(chuàng)建一個新的鏡像。為此,我們需要創(chuàng)建一個 Dockerfile 文件,其中包含一組指令來告訴 Docker 如何構(gòu)建我們的鏡像。

runoob@runoob:~$ cat Dockerfile FROM centos:6.7 MAINTAINER Fisher "fisher@sudops.com"RUN /bin/echo 'root:123456' |chpasswd RUN useradd runoob RUN /bin/echo 'runoob:123456' |chpasswd RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local EXPOSE 22 EXPOSE 80 CMD /usr/sbin/sshd -D

每一個指令都會在鏡像上創(chuàng)建一個新的層,每一個指令的前綴都必須是大寫的。

第一條FROM,指定使用哪個鏡像源

RUN 指令告訴docker 在鏡像內(nèi)執(zhí)行命令,安裝了什么。。。

然后,我們使用 Dockerfile 文件,通過 docker build 命令來構(gòu)建一個鏡像。

runoob@runoob:~$ docker build -t runoob/centos:6.7 . Sending build context to Docker daemon 17.92 kB Step 1 : FROM centos:6.7---&gt; d95b5ca17cc3 Step 2 : MAINTAINER Fisher "fisher@sudops.com"---&gt; Using cache---&gt; 0c92299c6f03 Step 3 : RUN /bin/echo 'root:123456' |chpasswd---&gt; Using cache---&gt; 0397ce2fbd0a Step 4 : RUN useradd runoob ......

參數(shù)說明:

  • -t :指定要創(chuàng)建的目標鏡像名
  • . :Dockerfile 文件所在目錄,可以指定Dockerfile 的絕對路徑

使用docker images 查看創(chuàng)建的鏡像已經(jīng)在列表中存在,鏡像ID為860c279d2fec

runoob@runoob:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE runoob/centos 6.7 860c279d2fec About a minute ago 190.6 MB runoob/ubuntu v2 70bf1840fd7c 17 hours ago 158.5 MB ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB php 5.6 f40e9e0f10c8 10 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB training/webapp latest 6fae60ef3446 12 months ago 348.8 MB

我們可以使用新的鏡像來創(chuàng)建容器

runoob@runoob:~$ docker run -t -i runoob/centos:6.7 /bin/bash [root@41c28d18b5fb /]# id runoob uid=500(runoob) gid=500(runoob) groups=500(runoob)

從上面看到新鏡像已經(jīng)包含我們創(chuàng)建的用戶runoob


設(shè)置鏡像標簽

我們可以使用 docker tag 命令,為鏡像添加一個新的標簽。

runoob@runoob:~$ docker tag 860c279d2fec runoob/centos:dev

docker tag 鏡像ID,這里是 860c279d2fec ,用戶名稱、鏡像源名(repository name)和新的標簽名(tag)。

使用 docker images 命令可以看到,ID為860c279d2fec的鏡像多一個標簽。

runoob@runoob:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE runoob/centos 6.7 860c279d2fec 5 hours ago 190.6 MB runoob/centos dev 860c279d2fec 5 hours ago 190.6 MB runoob/ubuntu v2 70bf1840fd7c 22 hours ago 158.5 MB ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB php 5.6 f40e9e0f10c8 10 days ago 444.8 MB nginx latest 6f8d099c3adc 13 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB training/webapp latest 6fae60ef3446 12 months ago 348.8 MB

五 進入鏡像

1 啟動docker某個image(鏡像)的container(容器)

Docker的鏡像稱為image,容器稱為container。

對于Docker來說,image是靜態(tài)的,類似于操作系統(tǒng)快照,而container則是動態(tài)的,是image的運行實例。

比如,有一個image名稱為ubuntu,那么比如現(xiàn)在我們啟動這個image的container并且進入到這個container的bash命令行中:

docker run -t -i ubuntu /bin/bash
官網(wǎng)是這么說的:
  • docker run: runs a container.
  • ubuntu: is the image you would like to run.
  • -t: flag assigns a pseudo-tty or terminal inside the new container.
  • -i: flag allows you to make an interactive connection by grabbing the standard in (STDIN) of the container.
  • /bin/bash: launches a Bash shell inside our container.

轉(zhuǎn)載于:https://www.cnblogs.com/lovestart/p/11273313.html

總結(jié)

以上是生活随笔為你收集整理的springboot10(docker)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。