日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Docker概念

Docker是一個開源的應用容器引擎,它是基于Go語言并遵從Apache2.0協議開源。Docker可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的linux機器上,也可以實現虛擬化。通過容器可以實現方便快速并且與平臺解耦的自動化部署方式,無論你部署時的環境如何,容器中的應用程序都會運行在同一種環境下。并且它是完全使用沙箱機制,相互之間是隔離的,更重要的是容器性能開銷極低。

Docker 作為輕量級虛擬化技術,擁有持續集成、版本控制、可移植性、隔離性和安全性等優勢。

Docker從17.03版本之后分為「CE(Community Edition:社區版)」和「EE(Enterprise Edition:企業版)」

「docker是一種容器技術,它主要是用來解決軟件跨環境遷移的問題」

安裝Docker

Docker可以運行在mac, windows, linux等操作系統上

以Mac為例

使用Homebrew安裝

brew install --cask docker

桌面版安裝

除了使用終端外,它還可以使用桌面版,操作更方便

如果需要手動下載,請點擊以下 鏈接 下載 Docker Desktop for Mac。

檢測是否安裝成功

docker -v

圖片圖片

嘗試運行一個Nginx服務器

docker run -d -p 80:80 --name webserver nginx

圖片圖片

當本地沒找到nginx鏡像時,它會去遠程倉庫中拉取,服務運行后,就可以通過localhost來訪問了

圖片圖片

鏡像加速

如果在使用過程中發現拉取鏡像十分緩慢,那是因為docker服務器是在國外的,但我們可以通過配置docker國內鏡像來進行加速

鏡像加速器

鏡像加速器地址

Docker 中國官方鏡像

https://registry.docker-cn.com

DaoCloud 鏡像站

http://f1361db2.m.daocloud.io

Azure 中國鏡像

https://dockerhub.azk8s.cn

科大鏡像站

https://docker.mirrors.ustc.edu.cn

阿里云

https://ud6340vz.mirror.aliyuncs.com

七牛云

https://reg-mirror.qiniu.com

網易云

https://hub-mirror.c.163.com

騰訊云

https://mirror.ccs.tencentyun.com

在任務欄點擊 Docker Desktop 應用圖標 -> Settings...,在左側導航菜單選擇 Docker Engine,在右側像下邊一樣編輯 json 文件。

{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "https://hub-mirror.c.163.com"
  ]
}

修改完成之后,點擊 Apply & restart 按鈕,Docker 就會重啟并應用配置的鏡像地址了。

配置完可以執行docker info檢查加速器是否生效

docker info

圖片圖片

Docker三要素

圖片圖片

鏡像(image)

「Docker 鏡像」 是一個特殊的文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(如匿名卷、環境變量、用戶等)。鏡像 「不包含」 任何動態數據,其內容在構建之后也不會被改變。

容器(contAIner)

鏡像(Image)和容器(Container)的關系,就像是面向對象程序設計中的 類 和 實例 一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啟動、停止、刪除、暫停等。

簡單理解就是「容器是鏡像的一個運行實例。當我們運行一個鏡像,就創建了一個容器。」

倉庫(repository)

鏡像構建完成后,可以很容易的在當前宿主機上運行,但是,如果需要在其它服務器上使用這個鏡像,我們就需要一個集中的存儲、分發鏡像的服務,Docker Registry 就是這樣的服務。

使用鏡像

拉取鏡像

在Docker Hub 上有大量的高質量的鏡像可以用,我們可以使用docker pull從鏡像倉庫中拉取對應的鏡像。

格式為:

docker pull [選項] [docker Registry 地址[:端口號]/]倉庫名[:標簽]

具體的選項可以通過 docker pull --help 命令看到,這里我們說一下鏡像名稱的格式。

  • Docker 鏡像倉庫地址:地址的格式一般是 <域名/IP>[:端口號]。默認地址是 Docker Hub(docker.io)。
  • 倉庫名:這里的倉庫名是兩段式名稱,即 <用戶名>/<軟件名>。對于 Docker Hub,如果不給出用戶名,則默認為 library,也就是官方鏡像。

比如拉取一個node鏡像:

docker pull node:18-alpine

圖片圖片

這里我們拉取鏡像的時候只是給出了鏡像名稱(倉庫名+標簽)也就是node:18-alpine,并沒有給出Docker鏡像的倉庫地址,所以它會從默認地址docker.io拉取鏡像

從上圖我們可以看到docker pull 命令的輸出結果給出了鏡像的完整名稱,即:docker.io/library/node:18-alpine。

查看鏡像

如果想要查看本地已經下載的鏡像,可以使用docker image ls命令

圖片圖片

列表包含了 倉庫名、標簽、鏡像 ID、創建時間 以及 所占用的空間。

當然也可以在docker桌面端中直接查看:

圖片圖片

刪除鏡像

如果想要刪除本地鏡像,可以使用docker image rm命令

格式為:

docker image rm [選項] <鏡像1> [<鏡像2>...]

其中,<鏡像> 可以是 鏡像短 ID、鏡像長 ID、鏡像名 或者 鏡像摘要。

比如刪除我們剛拉取的node鏡像

docker image rm node:18-alpine

如果想批量刪除鏡像可以使用docker image ls -q來配合使用docker image rm

比如,我們需要刪除所有倉庫名為 redis 的鏡像:

docker image rm $(docker image ls -q redis)

或者刪除所有在 mongo:3.2 之前的鏡像:

docker image rm $(docker image ls -q -f before=mongo:3.2)

更多指令可通過docker image --help查看

操作容器

查看容器

查看正在運行的容器:

docker ps

查看所有容器

docker ps -a

啟動容器

啟動容器一般有兩種情況:

  • 基于鏡像新建一個容器并啟動
  • 將已有的終止狀態(exited)的容器重新啟動

新建并啟動

使用的命令是docker run

docker run -it node

參數說明:

  • -i:交互式操作
  • -t:終端
  • node:node鏡像

啟動終止狀態的容器

首先查看所有的容器

docker ps -a

圖片

然后可以使用docker start啟動一個停止的容器

docker start 7e7ff4af478f

重啟容器
docker restart a03b0445b82d

后臺運行

大部分情況下,我們都希望docker是在后臺運行的,這里可以通過-d指定容器的運行模式

docker run -d node:latest

停止容器

停止容器命令如下

docker stop <容器 id>

先查看所有容器

圖片圖片

再停止容器

docker stop 3c275da2f36d

圖片圖片

進入容器

當我們使用-d參數時,容器啟動會進入后臺,此時想要進入容器可以通過以下指令:

「exec」(推薦使用)

docker exec -it a03b0445b82d /bin/bash

圖片圖片

「注意:」 如果從這個容器退出,容器不會停止,這就是為什么推薦大家使用 「docker exec」 的原因。

「attach」(不推薦使用)

docker attach a03b0445b82d

「注意:」 如果從這個容器退出,會導致容器的停止。

刪除容器

刪除容器可以使用docker rm命令

docker rm a03b0445b82d

如果想要刪除所有終止狀態的容器可以使用以下指令:

docker container prune

小試牛刀(部署一個前端項目)

首先準備一個vue項目,在項目根路徑下添加Dockerfile文件

編寫Dockerfile

# 指定node鏡像
FROM node:16-alpine as builder

# 指定工作目錄
WORKDIR /code

# 代碼復制到容器中
ADD . /code

# 安裝依賴
RUN npm install --registry=https://registry.npm.taobao.org

# 打包
RUN npm run build

# RUN ls

# 指定nginx鏡像
FROM nginx:latest

# 復制打包后的代碼到nginx容器中
COPY --from=builder /code/dist /usr/share/nginx/html

# 暴露端口
EXPOSE 80

打包鏡像

docker build -t web-nanjiu .

圖片圖片

啟動容器

在鏡像打包完成之后,我們可以使用該鏡像來啟動一個容器

docker run -itd -p 0.0.0.0:9090:80 web-nanjiu

這里的-p表示將容器的端口映射到宿主機的端口,這里的宿主機也就是我們本地了

前面的0.0.0.0:9090表示宿主機端口

后面的80表示容器的端口

啟動完我們直接使用http://localhost:9090/進行訪問

圖片圖片

當看到這個頁面時就代表docker部署成功了

當然你也可以使用docker ps查看此時正在運行的容器

 

圖片圖片

分享到:
標簽:Docker
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定