摘要:自動化測試和持續集成發布。在服務型環境中部署和調整數據庫或其他的后臺應用。容器與鏡像的關系類似于面向對象編程中的對象與類。容器容器是獨立運行的一個或一組應用。提供了龐大的鏡像集合供使用。
還在按照mysql安裝教程一步一步配置服務配置賬戶嗎?還在為每開一個新環境重新配置這些服務感到苦惱嗎?使用Docker,服務快速構建部署。解決你的研發時間,早點下班~現代技術,還不會docker你就落后了。Docker
百度百科定義
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口
比較全面的學習網站:https://www.runoob.com/docker...
以下資料來源于www.runoob.com,更多資料請直接訪問該網站,侵刪。
Docker 是一個開源的應用容器引擎,基于 Go 語言 并遵從Apache2.0協議開源。
Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。
容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。
Docker 從 17.03 版本之后分為 CE(Community Edition: 社區版) 和 EE(Enterprise Edition: 企業版),我們用社區版就可以了。
誰適合閱讀本教程?
本教程適合運維工程師及后端開發人員,通過本教程你可以一步一步了解 Docker 的使用。
閱讀本教程前,您需要了解的知識
在閱讀本教程前,你需要掌握 Linux 的常用命令。你可以通過本站的 Linux 教程 來學習相關命令。
Docker的應用場景
Web 應用的自動化打包和發布。 自動化測試和持續集成、發布。 在服務型環境中部署和調整數據庫或其他的后臺應用。 從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。
Docker 的優點
1、簡化程序: Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數周的 任務,在Docker容器的處理下,只需要數秒就能完成。 2、避免選擇恐懼癥: 如果你有選擇恐懼癥,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 鏡像;Docker 鏡像中包含了運行環境和配置,所以 Docker 可以簡化部署多種應用實例工作。比如 Web 應用、后臺應用、數據庫應用、大數據應用比如 Hadoop 集群、消息隊列等等都可以打包成一個鏡像部署。 3、節省開支: 一方面,云計算時代到來,使開發者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與云的結合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。
相關鏈接
Docker 官網:http://www.docker.com
Github Docker 源碼:https://github.com/docker/docker
Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器。
Docker 容器通過 Docker 鏡像來創建。
容器與鏡像的關系類似于面向對象編程中的對象與類。
Docker | 面向對象 |
---|---|
容器 | 對象 |
鏡像 | 類 |
名稱 | 概述 |
---|---|
Docker 鏡像(Images) | Docker 鏡像是用于創建 Docker 容器的模板。 |
Docker 容器(Container) | 容器是獨立運行的一個或一組應用。 |
Docker 客戶端(Client) | Docker 客戶端通過命令行或者其他工具使用 Docker API (https://docs.docker.com/refer... 與 Docker 的守護進程通信。 |
Docker 主機(Host) | 一個物理或者虛擬的機器用于執行 Docker 守護進程和容器。 |
Docker 倉庫(Registry) | Docker 倉庫用來保存鏡像,可以理解為代碼控制中的代碼倉庫。 |
Docker Hub(https://hub.docker.com) | 提供了龐大的鏡像集合供使用。 |
Docker Machine | Docker Machine是一個簡化Docker安裝的命令行工具,通過一個簡單的命令行即可在相應的平臺上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 |
請直接訪問https://www.runoob.com/docker...
以下簡述常規鏡像和容器操作
docker pull training/webapp # 載入鏡像 docker run -d -P training/webapp python app.py # 后臺運行鏡像 docker ps # 查看正常運行的容器 CONTAINER ID IMAGE COMMAND ... PORTS CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 749081df9fe6 alenx/walle-web:2.1 "nginx -g "daemon of…" 2 weeks ago Up 2 days 0.0.0.0:7070->80/tcp walle-nginx eafa0bf1e0f8 alenx/walle-python:2.1 "bash -c "cd /opt/wa…" 2 weeks ago Up 2 days 5000/tcp walle-python dde36e384856 mysql "docker-entrypoint.s…" 2 weeks ago Up 2 days 0.0.0.0:3306->3306/tcp, 33060/tcp walle-mysql b7f2cab4ac7c eclipse/che-server:6.8.0 "/entrypoint.sh" 11 months ago Up 2 days 8000/tcp, 0.0.0.0:8080->8080/tcp che docker logs -f d3d5e39ed9d3 #查看日志 docker stop che # 停止容器 docker start che # 啟動容器 docker rm che # 移除容器Docker常規實例
該網站內包括以下docker鏡像的部署
實例 | 網站 |
---|---|
Nginx | https://www.runoob.com/docker... |
PHP | https://www.runoob.com/docker... |
MySQL | https://www.runoob.com/docker... |
Tomcat | https://www.runoob.com/docker... |
Python | https://www.runoob.com/docker... |
Redis | https://www.runoob.com/docker... |
MongoDB | https://www.runoob.com/docker... |
Apache | https://www.runoob.com/docker... |
Gitlab | https://www.jianshu.com/p/080... |
Nexus | https://www.jianshu.com/p/77a... |
內容參考:https://www.runoob.com/docker...
查找遠程鏡像:docker search mysql
拉取遠程鏡像:docker pull mysql:5.6
瀏覽本地鏡像:docker images |grep mysql
運行本地鏡像:docker run -d -P mysql:5.6
查看本地容器:docker ps
內容參考https://www.jianshu.com/p/080...
拉取遠程鏡像:docker pull gitlab/gitlab-ce
運行本地鏡像:
$ docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce # -d:后臺運行 # -p:將容器內部端口向外映射(左邊宿主機端口,右邊容器端口) # --name:命名容器名稱 # -v:將容器內數據文件夾或者日志、配置等文件夾掛載到宿主機指定目錄
由于gitlab需要使用ssh連接,并且http地址需要使用固定地址(否則下載完的代碼可能呈現giturl為127.0.0.1,所以我們要進行略微的調整)
編輯鏡像配置:vim /home/gitlab/config/gitlab.rb
編輯鏡像配置:
# 配置http協議所使用的訪問地址,不加端口號默認為80 external_url "http://192.168.1.122" # 配置ssh協議所使用的訪問地址和端口 gitlab_rails["gitlab_ssh_host"] = "192.168.1.122" gitlab_rails["gitlab_shell_ssh_port"] = 222 # 此端口是run時22端口映射的222端口 :wq #保存配置文件并退出
重啟本地容器:docker restart gitlab
后續創建項目和拉取代碼等常規操作不再解釋
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27888.html
摘要:以便對整個持續集成印象加深。配置完各環境發布腳本后,則可以使用構建發起進行觸發環境準備。并會在遠程環境上存放多次發布的版本,用于回退和切換服務停用。進行等操作,停止原本運行的服務切換啟用。 該文章用于建立一個小型的基于Walle的持續集成工具。解決java,react,angular項目的編譯發布。以便對整個持續集成印象加深。官方網站:https://walle-web.io/ 適用...
摘要:該文章用于概述一個小型持續集成環境的搭建的方案什么是持續集成持續集成作為當今軟件開發實踐,可以簡單理解為團隊開發相對頻繁的集成他們的工作,一般讓每個成員每天至少集成一次,而這回造成每天會有多次的版本發布。 該文章用于概述一個小型持續集成環境的搭建的方案 什么是持續集成? 持續集成作為當今軟件開發實踐,可以簡單理解為團隊開發相對頻繁的集成他們的工作,一般讓每個成員每天至少集成一次,而這回...
摘要:本章用于講解如何在下構建和運行。編譯發版都是基于的容器,下完成的。 本章用于講解如何在walle下構建和運行JavaWeb。主要包含SpringBoot,ScalaAkkaWeb應用,以Java -jar和Docker運行兩種方式(Tomcat方式不講,大家自行研究) 新建項目 項目中心 > 項目管理 > 新建項目 以下是一份配置好的項目表 分組 項目 參考 備注 基本配置 ...
摘要:本章用于講解如何在下構建和運行前端應用。項目配置服務名稱鏡像版本映射容器端口到本地端口數據卷映射本地文件到容器映射文件到容器的目錄并覆蓋文件映射文件夾到容器的文件夾覆蓋容器啟動后默認執行的命令。環境準備參考文檔 本章用于講解如何在walle下構建和運行前端應用。主要包含React,Angular應用,以Nginx+Docker運行(Vue方式不講,大家自行研究) 新建項目 項目中心 >...
摘要:當前版本針對于安裝版概要整體流程貫通,基本可以達到實用級別。仍舊有很多需要提高的地方發布構建時部署上線服務器卡頓嚴重,基本不可以多項目發布。 該文章旨在描述從零開始搭建環境,中間遇到的問題以及最終的經驗總結。當前版本針對于2.0 docker安裝版 概要 整體流程貫通,基本可以達到實用級別。滿足2-5臺服務器,少量的應用部署是完全可以的,但達到一定規模之后則Walle和Jenkins...
閱讀 3548·2021-08-31 09:39
閱讀 1854·2019-08-30 13:14
閱讀 2918·2019-08-30 13:02
閱讀 2769·2019-08-29 13:22
閱讀 2341·2019-08-26 13:54
閱讀 767·2019-08-26 13:45
閱讀 1586·2019-08-26 11:00
閱讀 982·2019-08-26 10:58