1. 程式人生 > >Docker入門實操

Docker入門實操

淺色邊框標題docker簡介

Linux容器作為一類作業系統層面的虛擬化技術成果,旨在立足於單一Linux主機交付多套隔離性Linux環境。

與虛擬機器不同,容器系統並不需要執行特定的guest os。相反,容器共享同一套主機作業系統核心,同時利用guest os的系統庫以交付必要的系統功能。由於無需藉助於專門的作業系統,因此容器在啟動速度上要遠遠優於虛擬機器。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

上圖是經典對比圖,左圖是傳統的虛擬化,屬於平臺虛擬化(模擬,全虛擬化,半虛擬化)每個虛擬機器執行在自己獨立完整的作業系統中;右圖是容器,與虛擬機器不同,容器系統並不需要執行特定的訪客作業系統。

 容器能夠利用NamespacesSELinuxchroot以及CGroups

Linux核心功能,從而交付一套類似於虛擬機器的隔離性環境。Linux安全模組能夠確保來自容器的主機裝置與核心訪問行為受到妥善管理,從而避免入侵活動的發生。除此之外,容器還能夠通過其主機作業系統執行多種不同Linux發行版——只要各類作業系統擁有同樣的底層CPU架構要求(然而在生產環境中並不能做到真正意義上的完全隔離);

Docker 是開源基於LXC(linux container)的高階容器引擎,基於go 語言開源,使用核心的cgroups(檔案系統隔離)及namespace(一種命名方法);請記住Docker是容器引擎,平常我們一般都說Docker 是容器,但是其本質別搞混了。

安裝及執行docker

實驗環境中的Docker

CentOS7.3):

1.安裝

[[email protected] ~]# yum -y install docker(注意配置好yum源,使用的是centos自帶的yum源

2.           執行:

0?wx_fmt=png

安裝完成以後我們可以使用docker這個命令,同時在上圖中我們看到以下資訊:此時的Docker 是客戶端,有版本,API版本,go 版本等資訊,最重要的是最後的提示,此時的Docker Daemon 並未執行

啟動docker服務,然後繼續檢視版本資訊,可以看到服務端相關的資訊,如下圖所示:

0?wx_fmt=png

3.檢視幫助:

0?wx_fmt=png

4.   檢視本地倉庫的映象:

0?wx_fmt=png

5.   在DockerHub 上搜索共享映象:

0?wx_fmt=png

6.拉取共享映象:

在拉取前需要更改/etc/docker/daemon.json(國內訪問dockerhub速度你懂得,在這裡使用了ustc的映象加速)

{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}

0?wx_fmt=png

7.再次檢視本地倉庫:

0?wx_fmt=png

像不像git,哈哈。。。

8.總結:

哈哈,總算是把準備工作搞定了,其實準備工作裡有很多細節性的東西,比如docker images 裡有tag 標籤,我們是可以指定標籤名字的,如果使用Docker 私有倉庫將會接觸很多TAG,可以指定上傳映象TAG及下載映象TAG;同樣我們也可以定製自己的映象,將一些常用服務做成映象,那麼在下次使用時就再也不用安裝及配置啦;Docker 映象是分層的,類似我們小時候用的字帖;

是的,容器執行需要:倉庫、映象、容器引擎

執行容器

1.執行一個名字為C1的容器,並獲取一個shell

0?wx_fmt=png

此時我們進入C1 容器的shell 在這裡可以執行一些基本命令,

例如我們裝一下ip 這個命令

0?wx_fmt=png

是不是與在宿主機上沒有區別呢?

0?wx_fmt=png

同樣我們是不是可以幹壞事呢(從docker裡面可以直接進入物理機)

0?wx_fmt=png

2.離開容器(為什麼是離開,如果是退出,那麼容器就掛了)

Ctrl+p+q

0?wx_fmt=png

在這裡能看到正在執行的容器,容器的ID 使用的映象,執行的命令,建立時間以及它的名字

3.連線正在執行的容器

0?wx_fmt=png

又進來了!

4.退出容器

0?wx_fmt=png

直接從容器退出後,docker ps 已經看不到了,那麼使用引數-a即可:

0?wx_fmt=png

5.啟動一個退出的容器

0?wx_fmt=png

又活了

6.使用宿主機停止容器

0?wx_fmt=png

7.刪除容器

先停止再刪除

0?wx_fmt=png

上面docker rm “ID編號docker rm “name”效果一樣

0?wx_fmt=png

容器已經沒有了;

總結:通過這幾個命令,已經可以執行,連線,檢視,刪除容器了,如果想真正使用這些容器,這些遠遠不夠

四、總結

一向不關於總結,總是想到哪裡說到哪裡,以上是Docker 的基本命令及操作,通過這些命令我們可以輕易的執行一個容器,並在不使用後銷燬,在執行容器的時候你會發現不到很快容器就執行起來了,具體時間看宿主機配置,一般都在1秒左右,和傳統虛擬機器相比快多啦;

同時,雖然我們已經能夠執行容器,但是也存在著問題,埠,服務,儲存等等。

感謝particular投稿。。。

歡迎各位來稿。。。這種也是蠻好玩的,不是麼。。。不要慫。。。

0?wx_fmt=png

相關推薦

Docker入門-學習筆記

iproute weixin 格式 cti 文件包含 mir unit dockerhub 運行 一、安裝級運行docker 安裝[root@localhost ~]# curl -sSL https://get.daocloud.io/docker | sh 運行

Docker入門

淺色邊框標題docker簡介Linux容器作為一類作業系統層面的虛擬化技術成果,旨在立足於單一L

docker入門

linu 當前 bubuko 標簽 最簡 直接 改變 doc ner Docker 是什麽? 我們在理解 Docker 之前,首先得先區分清楚兩個概念,容器和虛擬機。 每臺虛擬機都需要有自己的操作系統,虛擬機一旦被開啟,預分配給它的資源將全部被占用。 每一臺虛擬機包括

GitLab-CI/CD入門

以Spring boot專案為例。傳統方式是本地生成jar包,FTP上傳伺服器,重啟服務;如果是內網測試服,也可以在伺服器上安裝git,在伺服器上編譯打包。但這都需要人為干預,於是`CI/CD`就出現了。 + CI:Continuous Integration(持續整合)。自動構建和測試每次提交的程式碼,以確

ubuntu安裝docker

安裝前檢查,檢視Ubuntu版本 Docker 要求 Ubuntu 系統的核心版本高於 3.10,並且是64位系統 uname -a lsb_release -a [email protected]32-248-ubuntu:~# una

ABP入門系列目錄——學習Abp框架之演練

ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 ASP.NET Boilerplate是一個用最佳實踐和流行技術開發現代WEB應用程式的新起點,它旨在成為一個通用的WEB應用程式框架和專案模板。 框架 ABP是基於最新的ASP.NET CORE,ASP

微生物組入門必讀+巨集基因組課程=新老司機趕快上車

宣告:本文轉載自巨集基因組公眾號,原作者朱微金,己獲作者授權。 寫在前面 作為純wet遺傳學博士,轉行微生物組領域已經有兩年。目睹微生物組文章中分析所佔比重之大,讓我痛下決心苦學dry技能。目前感覺對巨集基因組領域的基礎分析技術已經略懂,每天按自己的想法搞事

pm2入門指南(安裝+部署專案)

1.為什麼要用pm2 通常情況下,我們在linux伺服器上部署nodejs的程式,只需要在伺服器上安裝nodejs環境即可,然後node myapp.js,程式就跑起來了。但是發現了一個問題,我用的是xshell進行的遠端連線伺服器,當我本機的xshell斷開或者是關閉後,

入門教程!從概念到部署,全方位瞭解K8S Ingress!

Kubernetes Ingress用於新增規則,以將流量從外部路由到Kubernetes叢集的服務中。在本文中你將瞭解ingress 的概念,以及用於路由外部流量到Kubernetes deployment的ingress controller。 通常情況下,自定義Nginx或HAproxy Kuberne

使用Jenkins與Docker持續整合與釋出NetCore專案(篇)

# 使用Jenkins與Docker持續整合與釋出NetCore專案(教程一) 原文地址:[https://www.cnblogs.com/Jackyye/p/12588182.html](https://www.cnblogs.com/Jackyye/p/12588182.html) ## 基本環境 該教

nodejs+mysql入門例(增)

ava value query 連接 var ssa func add blog var userAddSql = ‘INSERT INTO userinfo(id,username,pwd) VALUES(0,?,?)‘; var userAddSql_Params

nodejs+mysql入門例(改)

end cheng console req name create brush script *** //連接數據庫 var mysql = require(‘mysql‘); var connection = mysql.createConnection({ h

java遠程調用rmi入門

路徑 cast server super nbsp start 發生 extends 通過 RMI是Java的一組擁護開發分布式應用程序的API。RMI使用Java語言接口定義了遠程對象,它集合了Java序列化和Java遠程方法協議(Java Remote

JSP自己定義標簽入門例具體解釋

xmlns instance 解釋 email get clas exce catch exception JSP自己定義標簽主要能用到的兩個包 javax.servlet.jsp.*;javax.servlet.jsp.tagext.*; 自己定義標簽<u

docker入門——管理容器

ons 網絡配置 aps address deb gif ror 鏡像 tail命令 除了交互式的容器(interactive container),我們也可以創建長期運行的容器。守護式容器(daemonized container)沒有交互式會話,非常適合運行應用程序和服

Spring MVC入門

not 入門實例 mod 註解 ner art adding pac eclipse 1.web.xml配置 <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www

docker入門——鏡像簡介

reg play rep linux roo create 操作系統 一個 eat 什麽是docker鏡像 Docker鏡像是由文件系統疊加而成。 最底端是一個引導文件系統,即bootfs: 這很像典型的Linux/Unix的引導文件系統。Docker用戶幾乎

轉-Vue.js2.0從入門到放棄---入門例(一)

命令行 今天 初始化 手動 pre ref cnpm 簡單介紹 收藏 http://blog.csdn.net/u013182762/article/details/53021374 標簽: Vue.jsVue.js 2.0Vue.js入門實例Vue.js 2.0教

WebService入門例教程

查找 鼠標 sdl stat 功能 我們 按鈕 編程 static 什麽是WebService 通過使用WebService,您的應用程序可以向全世界發布信息,或提供某項功能,它是基於Web的服務,通過Web進行發布、查找和使用。 WebService腳本平臺需支持XM

java 消息機制 ActiveMQ入門

private new upload provider mod clas 實例對象 過程 時間 1.下載ActiveMQ 去官方網站下載:http://activemq.apache.org/ 我下載的時候是 ActiveMQ 5.8.0 Release版 2.運行Acti