docker 安裝軟件


Docker

Docker官方網址: https://docs.docker.com/  英文地址

Docker中文網址: http://www.docker.org.cn/ 中文地址

 

Docker是基於Go語言實現的雲開源項目,誕生於2013年初,最初發起者是dotClouw公司。Docker 自開源后受到廣泛的關注和討論,目前已有多個相關項目,逐斷形成了圍Docker的生態體系。dotCloud 公司后來也改名為Docker Ine。

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

Docker優點

簡化程序

Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數周的 任務,在Docker容器的處理下,只需要數秒就能完成。

避免選擇恐懼症

如果你有選擇恐懼症,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 鏡像;Docker 鏡像中包含了運行環境和配置,所以 Docker 可以簡化部署多種應用實例工作。比如 Web 應用、后台應用、數據庫應用、大數據應用比如 Hadoop 集群、消息隊列等等都可以打包成一個鏡像部署。

節省開支

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

Docker架構

客戶端→Docker_Host(宿主機)→倉庫

容器→鏡像→倉庫

 

微服務如何在docker運行?

Maven

PC電腦端如何查找軟件安,360軟件管家

 

Docker 理解為應用市場管家

核心簡化運維安裝軟件的發雜環境

 

Docker daemon( Docker守護進程)

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

 

Client( Docker客戶端)

Docker客戶端是 Docker的用戶界面,它可以接受用戶命令和配置標識,並與 Docker daemon通信。圖中, docker build等都是 Docker的相關命令。

 

Images( Docker鏡像)

Docker鏡像是一個只讀模板,它包含創建 Docker容器的說明。它和系統安裝光盤有點像,使用系統安裝光盤可以安裝系統,同理,使用Docker鏡像可以運行 Docker鏡像中的程序。

 

Container(容器)

容器是鏡像的可運行實例。鏡像和容器的關系有點類似於面向對象中,類和對象的關系。可通過 Docker API或者 CLI命令來啟停、移動、刪除容器。

 

Registry

Docker Registry是一個集中存儲與分發鏡像的服務。構建完 Docker鏡像后,就可在當前宿主機上運行。但如果想要在其他機器上運行這個鏡像,就需要手動復制。此時可借助 Docker Registry來避免鏡像的手動復制。

 

一個 Docker Registry可包含多個 Docker倉庫,每個倉庫可包含多個鏡像標簽,每個標簽對應一個 Docker鏡像。這跟 Maven的倉庫有點類似,如果把 Docker Registry比作 Maven倉庫的話,那么 Docker倉庫就可理解為某jar包的路徑,而鏡像標簽則可理解為jar包的版本號。

Docker與虛擬機比較

作為一種輕量級的虛擬化方式,Docker在運行應用上跟傳統的虛擬機方式相比具有顯著優勢:

Docker容器很快,啟動和停止可以在秒級實現,這相比傳統的虛擬機方式要快得多。

Docker容器對系統資源需求很少,一台主機上可以同時運行數千個Docker容器。

Docker通過類似Git的操作來方便用戶獲取、分發和更新應用鏡像,指令簡明,學習成本較低。

Docker通過Dockerfile配置文件來支持靈活的自動化創建和部署機制,提高工作效率。

Docker安裝

Docker 是一個開源的商業產品,有兩個版本:社區版(Community Edition,縮寫為 CE)和企業版(Enterprise Edition,縮寫為 EE)。企業版包含了一些收費服務,個人開發者一般用不到

 

Docker 要求 CentOS 系統的內核版本在 3.10以上 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 。

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

uname -r

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

yum -y update

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

yum remove docker docker-common docker-selinux docker-engine

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

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

5、 設置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

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

yum list docker-ce --showduplicates | sort -r

7、 安裝docker

sudo yum install -y docker-ce     

#由於repo中默認只開啟stable倉庫,故這里安裝的是最新穩定版18.03.1

8、 啟動並加入開機啟動

systemctl start docker

systemctl enable docker

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

docker version

 

鏡像相關命令

1、搜索鏡像 # docker search java

可使用 docker search命令搜索存放在 Docker Hub(這是docker官方提供的存放所有docker鏡像軟件的地方,類似maven的中央倉庫)中的鏡像。執行該命令后, Docker就會在Docker Hub中搜索含有 java這個關鍵詞的鏡像倉庫。

Docker Hub 官網https://hub.docker.com/search?q=java&type=image

2、下載鏡像docker pull java:8

使用命令docker pull命令即可從 Docker Registry上下載鏡像,執行該命令后,Docker會從 Docker Hub中的 java倉庫下載最新版本的 Java鏡像。如果要下載指定版本則在java后面加冒號指定版本

 

3、列出鏡像使用 docker images命令即可列出已下載的鏡像

 

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

docker rmi d23bdf5b1b1b

阿里鏡像加速

詳細參考: https://cr.console.aliyun.com/cn-hangzhou/mirrors

 

容器相關命令

啟動容器 docker run -d -p 81:80 nginx

 

在本例中,為 docker run添加了兩個參數,含義如下:

-d 后台運行

-p 宿主機端口:容器端口     #開放容器端口到宿主機端口

訪問 http://Docker宿主機 IP:81/,將會看到nginx的主界面如下:

 

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

 

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

3. 查看容器的信息 docker inspect 3af5513d208e

 

構建自己的docker鏡像

 

1、將jar包上傳linux服務器/usr/local/dockerapp目錄,在jar包所在目錄創建名為Dockerfile的文件

2、在Dockerfile中添加以下內容

 

###指定java8環境鏡像

FROM java:8

###復制文件到容器app-springboot

ADD docker-springboot-0.0.1.jar /app-springboot.jar

###聲明啟動端口號

EXPOSE 8080

###配置容器啟動后執行的命令

ENTRYPOINT ["java","-jar","/app-springboot.jar"]

 

使用docker build命令構建鏡像

docker build -t docker-springboot-0.0.1 .

# 格式: docker build -t 鏡像名稱:標簽 Dockerfile的相對位置

 

docker run -p 8080:8080 docker-springboot-0.0.1 .

 

重啟systemctl restart docker

 

關閉防火牆  systemctl stop firewalld

192.168.212.215:8080

 

Docker卸載應用程序

先刪除容器,在刪除鏡像

 

查詢容器

docker ps –a

使用容器id刪除容器

docker rm 18e672ecd8ed

查詢鏡像

docker images

使用鏡像id刪除鏡像

docker rmi d23bdf5b1b1b

容器管理

進入到容器

docker container exec -it f0b1c8ab3633 /bin/bash

默認情況下軟件安裝的目錄的/ect目錄下

Exit

Docker軟件

停止Docker容器 docker stop  mynginx

Nginx安裝

  1. 下載Nginx鏡像文件

    

docker pull nginx

docker images

 

  1. 創建掛載目錄

 

mkdir -p /data/nginx/{conf,conf.d,html,logs}

 

  1. 編寫Nginx配置文件

詳細參考資料

  1. 啟動容器

 

docker run --name mynginx -d -p 80:80  -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  -v /data/nginx/logs:/var/log/nginx -d docker.io/nginx

 

6.查看容器

 

docker ps

 

MySQL安裝

1.查詢mysql版本

docker search mysql

2.下載MySQL5.7版本

docker pull mysql:5.7  (這里選擇的是第一個mysql鏡像, :5.7選擇的5.7版本)

3.等待下載完成、創建MySQL容器

docker create --name mysql3308 -e MYSQL_ROOT_PASSWORD=root -p 3308:3306 mysql:5.7

 創建容器名稱為mysql3308,密碼為root

  1. 啟動容器

docker start mysql3308

  1. 進入到容器

docker exec -it mysql3308 bash

  1. mysql連接

mysql -uroot –p

 

Docker常用命令

docker images  查看鏡像文件

docker version  查看版本

systemctl restart docker  重啟docker 

docker ps      查看正在運行的容器

docker ps -a  查看已經創建的容器

docker ps -s  查看已經啟動的容器

 

docker stop  容器id\容器名稱     停止容器

docker kill    容器id\容器名稱     強制停止容器

docker start  容器id\容器名稱     啟動容器

docker restart  容器id\容器名稱     重啟容器

進入容器:

 1、docker exec -it 容器ID /bin/bash 進入容器 

2、docker container exec -it f0b1c8ab3633 /bin/bash  進入到容器

3、docker attach 容器id   進入容器

4、

 

exit 退出容器

docker run -d -p 81:80 nginx 啟動nginx容器  -d 表示已后台啟動方式運行(守護式)   -p 指定端口號 對外:對內

docker rmi  鏡像id     刪除鏡像

docker rmi -f $(docker images)   刪除所有鏡像,-f 表示強制刪除

docker rm    容器id    刪除容器

docker rm $(sudo docker ps -a -q) 刪除所有未運行的容器

docker rename old_name new_name 重命名一個容器

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM