全面認識Docker和基本指令
Docker逐漸成為虛擬化技術的佼佼者,Java架構師之路接下來會推出一系列的Docker相關技術文章,Docker技術也是架構師的必備技能。
什麼是Docker
Docker 是一個開源的應用容器引擎,基於Go語言,誕生於2013年初,最初發起者是dotCloud公司,開發者可以打包應用到一個輕量級、可移植的容器中,然後釋出到主流Linux系統上執行。
為什麼用Docker
持續交付和部署:使用Docker可以通過定製應用映象來實現持續整合,持續交付,部署。開發人員構建後的映象,結合持續整合系統進行整合測試,而運維人員則可以在生產環境中快速部署該映象,也可以結合持續部署系統進行自動部署。
更高效的資源利用:
更輕鬆的遷移和擴充套件:Docker容器幾乎可以在任何平臺上執行,同時支援主流的作業系統發行版本。
更快速的啟動時間:傳統的虛擬機器技術啟動應用服務往往需要數分鐘,而Docker容器應用,由於直接運行於宿主核心,無需啟動完整的作業系統,因此可以做到妙級,甚至毫秒級的啟動時間,大大的節約了開發,測試,部署的時間。
Docker與傳統虛擬機器差異
核心概念
Docker映象:類似於虛擬機器裡的映象,是一個只讀的模板,一個獨立的檔案系統,使用映象可以建立容器,可以理解為映象是容器的基石。
Docker容器:是由Docker映象建立的執行例項,類似於輕量級的沙箱,每個容器之間都是相互隔離的。支援的操作有啟動,停止,刪除等。
Docker倉庫:類似於經常使用的程式碼倉庫,如github,它是Docker集中存放映象檔案的倉所,國內也有網易,阿里等映象倉庫。
映象操作指令
獲取映象:
docker pull centos (預設獲取centos最新的映象)
docker pull centos:7 (獲取指定標籤映象)
檢視本地映象:
docker images
檢視映象詳細資訊:
docker inspect centos:7
檢視映象歷史:
docker history centos:7
刪除映象:
A:使用標籤刪除:docker rmi centos
B:使用ID刪除:docker rimi
構建映象:
A:使用docker commit命令
B:使用Dockerfile構建
使用docker commit
例:構建一個帶有jdk的映象
按照如下步驟操作
[[email protected] ~]# docker run -it centos:7 /bin/bash
[[email protected]060793baf536 /]# yum install wget
[[email protected]060793baf536 /]# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm
[[email protected]060793baf536 /]# rpm -ivh jdk-8u131-linux-x64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:jdk1.8.0_131-2000:1.8.0_131-fcs ################################# [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
[[email protected]060793baf536 /]# exit
[[email protected] ~]# docker commit 060793baf536 centos/jdk:2.0
通過docker images命令可以看到新增了centos/jdk 標籤為2.0的映象
使用Dockerfile構建
實際使用中不推薦使用docker commit構建,應使用更靈活和強大的Dockerfile構建docker映象,直接舉例來認識Dockerfile。
例:構建一個帶有jdk的centos7映象
[[email protected] Dockerfile]# mkdir Dockerfile
[[email protected] Dockerfile]# cd Dockerfile
編寫Dockerfile:
FROM centos:7
MAINTAINER Java-Road "[email protected]"
RUN mkdir /usr/local/jdk
COPY jdk-8u171-linux-x64.rpm /usr/local/jdk/
RUN rpm -ivh /usr/local/jdk/jdk-8u171-linux-x64.rpm
執行如下指令:
[[email protected] Dockerfile]# docker build -t centos/jdk .
執行結果如下:
docker images可以看到新生成的centos/jdk映象。
容器操作指令
建立啟動容器:
[[email protected] ~]# docker run centos:7 /bin/echo'hello world'
容器執行完後直接退出
互動形式建立啟動容器
[[email protected] ~]# docker run -it centos:7 /bin/bash
[[email protected] /]# ps
PID TTY TIME CMD
1 ? 00:00:00 bash
13 ? 00:00:00 ps
[[email protected] /]# exit執行exit才能退出容器
守護狀態執行容器
[[email protected] ~]# docker run -d centos:7 /bin/sh -c "while true; do echo hello world; sleep 1; done"
啟動已有的容器:
docker start 容器ID
例:
[root@localhost ~]# docker start 802e3623e566停止執行的容器:
docker stop 容器ID
例:
[root@localhost ~]# docker stop 802e3623e566刪除容器:
[[email protected] ~]# docker stop 89566e38c7fb
[[email protected] ~]# docker rm 89566e38c7fb進入執行的容器:
[[email protected] ~]# docker exec -it cbd8b1f35dcc /bin/bash
匯出容器:
匯出容器cbd8b1f35dcc到centos_test.tar檔案
[[email protected] ~]# docker export -o centos_test.tar cbd8b1f35dcc
匯出的tar檔案可以在其他機器上,通過匯入來重新執行匯入容器:
把匯出的檔案centos_test.tar通過docker import匯入變成映象
[[email protected] ~]# docker import centos_test.tar test/centos
通過docker images命令可以看到增加了個test/centos映象
相關推薦
全面認識Docker和基本指令
Docker逐漸成為虛擬化技術的佼佼者,Java架構師之路接下來會推出一系列的Docker相關技術文章,Docker技術也是架構師的必備技能。什麼是DockerDocker 是一個開源的應用容器引擎,基於Go語言,誕生於2013年初,最初發起者是dotCloud公司,開發者可
Django的下載和基本指令
1.下載Django pip3 install django #不寫版本號的話,預設使下載最新版的django pip3 install django == 2.1.2
Docker學習系列(三):Ubuntu下使用Docker的基本指令記錄及一些注意事項
1.Dockerhub下載映象 有兩種方式可以獲得新的映象 直接從dockerhub下載編譯好的image(該編譯過程在docker hub的雲端完成)(見3.1) 下載docekrfile檔案,在本機進行build 直接在docker
認識Task和Task的基本使用(轉)
title src demo 手動 點擊 strong esp started mage 對於多線程,我們經常使用的是Thread。在我們了解Task之前,如果我們要使用多核的功能可能就會自己來開線程,然而這種線程模型在.net 4.0之後被一種稱為基於“任務的編程模型”所
linux學習筆記:基本指令mkdir, rmdir 、和rm
pytho mil 註意 folder 執行 dir 不同 情況 我們 #學習內容來自莫煩python mkdir 建立文件夾 mkdir (make directory) 就是創建一個文件夾的意思, 使用起來很簡單. $ mkdir folder2 如果你想在這個目錄給
docker概述和基本命令
centos 搜索 文章 des 一個 case tfs 時間 測試 容器技術已經成為應用程序封裝和交付的核心技術 ? 容器技術的核心有以下幾個內核技術組成: – CGroups(Control Groups)-資源管理 – NameSpace-進
docker版mysql的使用和配置(1)——docker的基本操作
spa uci 信息 5.5 8.0 ash 隨機 server expec 最近實在是忙成狗,其他的內容等稍微閑一點了一起更新。 這篇主要是講docker版的mysql的使用和配置信息。因為實習公司需要搞一個docker做測試環境用,還需要包括基本的依賴。最重要的是,因為
【實戰】Docker入門實踐二:Docker服務基本操作 和 測試Hello World
lag hit 現在 mage spa 關系 .so recommend 不能 操作環境操作系統:CentOS7.2 內存:1GB CPU:2核Docker服務常用命令docker服務操作命令如下service docker start #啟動服務 service doc
『中級篇』Docker Compose的安裝和基本使用(39)
rem 關閉 端口映射 安裝docker 數據持久化 端口 映射 service lan >原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!>原文鏈接地址:『中級篇』Docker Compose的安裝和基本使用(39) Docker Compose 是
Docker學習--docker的基本認識
video 技術分享 必須 png 獲取 查看 contain bash ubuntu15 1、Docker 架構 Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器。 Docker 容器通過 Docker 鏡
三分鐘掌握docker基本指令
mysql `` ren 器) ner 定義 java 3.2 cli 一下內容是我用markdown編輯的,所以排版不是太ok~ # Docker ## 1.核心概念 docker主機(Host):安裝了docker程序的機器。docker直接安裝再操作系統上。 do
docker基本命令和基本操作命令
docker-教程 docker程式設計環境小書匠 docker 教程 Docker官方英文資源 docker官網:http://www.docker.com Docker windows入門:https://docs.docker.com/windows/
Docker安裝和基本入門(非簡介)
一、Docker安裝 官方安裝教程(Ubuntu文件型別):Docker官方安裝 注:如果在安裝過程中不知道是否使用啦具體的介紹內容如,Ubuntu中是否啟用UFW,則可以直接檢視/etc/default/ufw檔案是否存在來判斷 二、Docker入門(Docker已安裝好)(提示許
Docker入門及基本指令
Docker概念 Docker就相當於一個Github賬號,不過最開始的工程不能自己建立,要從DockerHub這個中央倉庫pull過來,這個工程Docker稱之為image,這個image竟然是個linux系統!!這是什麼概念?!以前我可以傳傳程式碼帶Github上就覺著很厲害了,現在我竟然可以有無限個作
[Docker] Docker安裝和簡單指令
Docker筆記 安裝 sudo apt install docker.io 啟動和關閉Docker服務 # 啟動Docker服務 sudo service docker start # 關閉Docker服務 sudo service docker stop 基本命令 檢視本地Docker的資訊,
【研發管理】(轉)全面認識和理解 DevOps
1 什麼是DevOps 當我們談到 DevOps 時,可能討論的是:流程和管理,運維和自動化,架構和服務,以及文化和組織等等概念。那麼,到底什麼是"DevOps"呢? 隨著軟體釋出迭代的頻率越來越高,傳統的「瀑布型」(開發—測試—釋出)模式已經不能滿足快速交
初識Docker學習-Docker的基本命令和概念
docker的基本命令-拉取、執行、停止、刪除映象,檢視日誌等操作,以及對應的概念說明 docker的基本操作 獲取映象 執行 啟動一個容器 容器內的一些操作 停止執行中的容器 檢視執行的日
Linux基本指令和快捷鍵(二)
實用指令 指定執行級別 執行級別說明: 0:關機 1:單使用者【找回丟失密碼】 2:多使用者狀態沒有網路服務 3:多使用者狀態有網路服務 4:系統未使用保留給使用者 5:圖形介面 6:系統重啟 常用執行級別是3、5,要修改預設的執行級別可改檔案 /e
組合語言之第五章至第八章知識彙總 組合語言之第五章【BX】和loop指令 組合語言之第六章包含多個段的程式 組合語言之第七章更靈活的定位記憶體地址的方法 彙編實驗之第八章資料處理的兩個基本問題
組合語言之第五章【BX】和loop指令 一:【bx】 【bx】和之前用過的【0】有些類似,都是表示記憶體單元,而它的偏移地址在bx中。段地址預設在ds中 描述一個記憶體單元 需要知道,1記憶體單元的地址,
docker的基本操作和在docker映象中安裝自己的程式執行
1,背景 虛擬機器系統:centos 72,關閉防火牆,這裡使用臨時關閉: setenforce 0 (永久關閉:修改/etc/sysconfig/selinux檔案,將SELINUX的值設定為disabled。)3,啟動docker服務 service do