5分鐘學會Docker核心概念、安裝、埠對映及常用操作命令
Docker
一、Docker簡介
Docker是開源應用容器引擎,輕量級容器技術。
基於Go語言,並遵循Apache2.0協議開源
Docker可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後釋出到任何流行的Linux系統上,也可以實現虛擬化
容器完全使用沙箱技術,相互之間不會有任何介面
類似於虛擬機器技術(vmware、vitural),但docker直接執行在作業系統(Linux)上,而不是執行在虛擬機器中,速度快,效能開銷極低
通俗易懂得大白話:
Docker支援將軟體編譯成一個映象,然後在映象中各種軟體做好配置,將映象釋出出去,其他使用者可以直接使用這個映象。
執行中的這個映象稱為容器,容器啟動是非常快速的。類似windows裡面的ghost操 作系統,安裝好後什麼都有了。
二、Docker核心概念
docker映象(Images):Docker映象是用於建立Docker容器的模板
docker容器(Container):映象啟動後的一個例項稱為容器,容器是獨立執行的一個或一組應用,
docker客戶端(Client):客戶端通過命令列或其他工具使用DockerAPI(https://docs.docker.com/reference/api/docker_remote_api)與Docker的守護程序進行通訊
docker主機(Host):一個物理或虛擬的機器用來執行Docker守護程序和容器
docker倉庫(Registry):Docker倉庫用來儲存映象,可以理解為程式碼控制中的程式碼倉庫,DockerHub(https://hub.docker.com) 提供了龐大的映象集合供使用
三、Docker安裝及啟動/停止
1. 檢視centos版本
Docker 要求 CentOS 系統的核心版本高於 3.10
通過命令:
uname -r
檢視當前centos版本,如版本不符,需升級系統版本
2 升級軟體包及核心(可選)
yum update
3. 安裝docker
yum install docker
4. 啟動docker
systemctl start docker
5. 將docker服務設為開機啟動
systemtctl enable docker
5. 停止docker
systemtctl stop docker
四、Docker常用命令及操作
4.1 docker映象命令
通常情況下,Docker的映象都放在Docker的官網 Docker Hub上,點此前往官網 https://hub.docker.com/
4.1.1 映象檢索
除了可以在Docker Hub上搜索映象外,還可以通過命令 docker search xxx
進行搜尋,下面以 mysql 為例:
docker search mysql
結果如下:
4.1.2 映象下載
下載命名為:docker pull 映象名:tag
,其中tag
多為系統的版本,可選的,預設為least
。
docker pull mysql
4.1.3 映象列表
獲取已下載映象列表命令:docker images
其中,
RESPOSITORY
為映象名TAG
為映象版本,least
代表最新版IMAGE_ID
為該映象唯一IDCREATED
為該映象建立時間SIZE
為該映象大小
4.1.1 映象刪除
刪除指定映象:
docker rmi image-id
刪除所有映象:
docker rmi $(docker images -q)
4.2 容器操作
可以理解為軟體下載(下載QQ)-->安裝(QQ)-->執行(QQ)的過程。
下面以Tomcat為例
4.2.1 搜尋映象
docker search tomcat
4.2.2 下載映象
docker pull tomcat
4.2.3 根據映象啟動容器
最簡單的執行映象為容器的命令如下:
docker run --name container-name -d image-name
執行一個容器,使用docker run
命令即可。
-- name
:為容器起一個名稱-d
:detached,執行完這句命令後,控制檯將不會阻塞,可以繼續輸入命令操作image-name
:要執行的映象名稱
4.2.4 檢視執行中容器
可通過如下命令,檢視執行中的容器列表:
docker ps
CONTAINER ID
:啟動時生成的IDIMAGE
:該容器使用的映象COMMAND
:容器啟動時執行的命令CREATED
:容器建立時間STATUS
:當前容器狀態PORTS
:當前容器所使用的預設埠號NAMES
:啟動時給容器設定的名稱
4.2.5 停止執行中容器
通過以下命令來停止執行中的容器:
docker stop container-name/container-id
4.2.5 檢視所有的容器
通過以下命令可檢視執行和停止的所有容器:
docker ps -a
4.2.6 啟動容器
通過以下命令啟動容器:
docker start container-name/container-id
4.2.7 刪除容器
刪除單個容器:
docker rm container-id
刪除所有容器:
docker rm $(docker ps -a -q )
4.2.8 啟動做埠對映的容器
Docker執行容器之後卻發現沒IP,沒埠,也就是說,啟動容器的時候如果不指定對應引數,在容器外部是無法通過網路來訪問容器內的網路應用和服務的。 所以需要通過Docker埠對映來實現網路訪問。
Docker的埠對映通過-p
引數實現,命令如下:
docker run --name tomcat1 -d tomcat
docker run --name tomcat2 -d -p 8888:8080 tomcat
如上,就把主機埠8888請求對映到Docker容器內部埠8080了。
執行完這兩條命令後,通過docker ps
檢視:
通過
PORTS
可以看出,tomcat2
是做了埠對映的,tomcat1
是沒進行對映過的。分別通過瀏覽器訪問:
http://*.*.*.*:8080/
// tomcat1預設埠
http://*.*.*.*:8888/
// 做過埠對映的Tomcat2,8888會轉發請求到tomcat2的8080
結果如下:
第一個請求是無法請求到的,原因開篇處說過了。
第二個請求是可以正常進行請求的,會由tomcat2容器進行處理
埠對映格式:
ip:hostport:containerport
#指定ip、指定主機port、指定容器port
ip::containerport
#指定ip、未指定主機port、指定容器port
hostport:container
#未指定ip port、指定主機port、指定容器port
4.2.9 檢視容器日誌
檢視當前容器日誌,可通過如下命令:
docker logs container-id/container-name
4.2.10 檢視埠對映
可以通過如下命令檢視容器映射了哪些埠及協議:
docker port container-id
示例:
[[email protected] ~]#docker port 46114af6b44e
8080/tcp -> 0.0.0.0:8888
[[email protected] ~]#docker port cea668ee4db0
如果返回空,則代表沒進行埠對映。
4.2.11 登入退出容器
執行中的容器其實是一個功能完備的Linux作業系統,所以我們可以像常規系統一樣進行登陸及退出操作。
登入命令為:
docker exec -it container-id/container-name bash
退出命令為:
exit
4.2.12 更多操作命令
更多命令可以參考:
https://docs.docker.com/engine/reference/commandline/docker/
Now ~ ~ ~寫到這裡,就寫完了,如果有幸幫助到你,請記得關注我,共同一起見證我們的成長。
小結
謝謝觀賞,我叫猿醫生。
相關推薦
5分鐘學會Docker核心概念、安裝、埠對映及常用操作命令
Docker 一、Docker簡介 Docker是開源應用容器引擎,輕量級容器技術。 基於Go語言,並遵循Apache2.0協議開源 Docker可以讓開發
docker核心概念(映象、容器、倉庫)
原文:https://www.cnblogs.com/whych/p/9446032.html 概要 docker是一種linux容器技術。容器有效的將由單個作業系統掛管理的資源劃分到孤立的組中,以便更好的在組之間平衡有衝突的資源使用需求。可簡
第2章 Docker核心概念與安裝--2.2 Linux 各發行版核心升級與Docker 安裝
Docker 支援在主流的作業系統平臺上使用,包括Ubuntu、Centos、Windows以及MacOS系統等。當然,在Linux系列平臺上是原生支援,使用體驗也是最好。 官方網站上有各種環境下的 安裝指南,這裡主要介紹下 Ubuntu、Debian 和CentOS 系列
5分鐘學會MySql的那些左連線、左外連線、內連線等等
首先,我們新建兩個表(員工表,和部門表)DROP DATABASE db0206; CREATE DATABASE db0206; USE db0206; CREATE TABLE `db0206`.`tbl_dept`( `id` INT(11) NOT NULL
mysql 5.7.20下載、安裝和配置方法及簡單操作技巧(解壓版免安裝)
安裝: 將下載的mysql壓縮包解壓後的整個目錄放在指定目錄 配置: 新建一個ini檔案,並命名為my.ini,放置到mysql安裝目錄中。檔案內容是: [mysql] # 設定mysql客戶端預設字符集 default-characte
01 . Docker原理部署及常用操作命令
#### Docker的來源及構造: > 容器是一種基礎工具:泛指任何用於容納其他物品的工具,可以部分或完全封閉,被用於容納,儲存,運輸物品: 物品可以被放置在容器中,而容器可以保護內容物: > > > > 人類使用容器的歷史有十萬年,甚至可能有數百萬年的歷史: ```shell # 容器
心領神會--自動化運維之Ansible的核心概念,安裝配置Ansible並學會使用其常見模塊。
是否 啟動 lease role 支持 概念 清單 註意 特點 自動化運維概述: 現如今隨著互聯網的高速發展,傳統運維方式效率太過低下,部署自動化運維可以安全高效的完成維護工作,成為當下運維的主要方式。 一般會把自動化運維工具劃分為兩類:一類是需要使用代理工具的,也就是基
docker的核心概念和安裝
裡Dcoker的安裝要求 我這裡安裝的是在vmware下的centos7 64位 並且通過模擬遠端連線xshell 我在安裝好之後就配置了靜態ip,這裡我就不多說怎麼配置了 具體靜態ip配置可以參考 http
理解自動化運維之Ansible的核心概念,安裝配置Ansible並學會使用其常見模組。
自動化運維概述: 現如今隨著網際網路的高速發展,傳統運維方式效率太過低下,部署自動化運維可以安全高效的完成維護工作,成為當下運維的主要方式。 一般會把自動化運維工具劃分為兩類:一類是需要使用代理工具的,也就是基於專用的Agent程式來完成管理功能,如:Puppet、Func、Zabbix等;另外一
5分鐘學會java獲取當天、昨天、本週、上週、本月、上月的起始結束時間
獲取當天/昨天/本週/上週/本月/上月的起始結束時間 一、獲取當天日
5、5分鐘學會vue中的路由守衛(導航守衛)
在專案開發中每一次路由的切換或者頁面的重新整理都需要判斷使用者是否已經登入,前端可以判斷,後端也會進行判斷的,我們前端最好也進行判斷。 vue-router提供了導航鉤子:全域性前置導航鉤子 beforeEach和全域性後置導航鉤子 afterEach,他們會在路由即將改變前和改變後進行觸發。所以判斷使用者
開啟運維之路之第 5 篇——Redis介紹、安裝、管理
Redis:Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。Redis百度百科介紹 瞭解下NoSQL (Not noly SQL)不僅僅是SQL,Redis就屬於非關係型資料庫,Mysql ,orac
5分鐘學會Java9-Java11的七大新特性
現在Java有多元化的發展趨勢,既有JS又有C++還有C#的影子,不學習那是不行滴。 來來來,花5分鐘看看Java9-Java11的七大新特性,還有程式碼樣例。 Java11 釋出了,然而很多公司還在用Java 8 ,這裡簡單介紹一下 Java 9 -11 引入的新語
5分鐘學會使用gitlab
第一次接觸到gitlab,操作不是很熟練,犯了一堆錯,在多次嘗試之後,大概瞭解了流程,這篇文章主要幫助大家快速上手gitlab,如果文章有什麼不對的地方,歡迎在評論區留言~ 1.新建專案 首先你得有個gitlab賬號以及本地已安裝git.exe,或者有git環境,然後建立一個專案projec
5分鐘學會Markdown語法,在GitHub上寫出漂亮文字,提升別人閱讀體驗
今天研究下在GitHub中如何漂亮的書寫readme部分 markdown是一種純文字格式的標記語言。通過簡單的標記語法,它可以使普通文字內容具有一定的格式。 1、因為是純文字,所以只要支援markdown的地方都能獲得一樣的編輯效果,可以讓作者擺脫排版的困擾,專心寫作。 2、操作簡單。
5分鐘學會Cron表示式
&nb
5分鐘學會Linux編輯檔案命令
&nb