Docker的使用

一、倉庫

  一、Docker 倉庫是用來包含鏡像的位置,倉庫支持的操做相似git,當用戶建立了本身的鏡像以後就能夠使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另一臺機器上使用這個鏡像時候,只須要從倉庫上 pull 下來就能夠了。mysql

  二、Docker 倉庫是用來包含鏡像的位置,Docker提供一個註冊服務器(Register)來保存多個倉庫,每一個倉庫又能夠包含多個具有不一樣tag的鏡像。Docker運行中使用的默認倉庫是 Docker Hub 公共倉庫。linux

    2.一、hub.docker.com(docker本身提供的倉庫)git

    2.二、c.163.com(網易提供的倉庫)web

二、鏡像

  一、Docker的鏡像概念相似於虛擬機裏的鏡像,是一個獨立的文件系統,包括運行容器所需的數據,能夠用來建立新的容器。例如:一個鏡像能夠包含一個完整的 linux 操做系統環境,裏面僅安裝了Mysql或用戶須要的其它應用程序。sql

  二、Docker 提供了一個很簡單的機制來建立鏡像或者更新現有的鏡像,用戶甚至能夠直接從其餘人那裏下載一個已經作好的鏡像來直接使用。docker

三、容器

  一、Docker 利用容器來運行應用。shell

  二、Docker容器是由Docker鏡像建立的運行實例。Docker容器相似虛擬機,能夠支持的操做包括啓動,中止,刪除等。每一個容器間是相互隔離的,容器中會運行特定的應用,包含特定應用的代碼及所需的依賴文件。centos

  三、能夠把容器看作是一個簡易版的 Linux 環境(包括root用戶權限、進程空間、用戶空間和網絡空間等)和運行在其中的應用程序。tomcat

四、安裝(Linux系統)

  一、檢查內核版本,返回的值大於3.10便可bash

uname -r

  二、移除舊版本

yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine

  三、安裝一些工具

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

  四、添加軟件源信息

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  

  五、安裝最新版本

yum install -y docker-ce

  六、或者選擇版本安裝

#查詢版本列表
yum list docker-ce --showduplicates | sort -r #指定版本安裝
yum install -y docker-ce-17.09.0.ce

  七、啓動docker

systemctl start docker.service

  八、驗證是否成功安裝

docker version(若是出現Client和Server,則說明安裝成功) Client: Version: 18.06.1-ce API version: 1.38 Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:23:03 2018 OS/Arch: linux/amd64 Experimental: false Server: Engine: Version: 18.06.1-ce API version: 1.38 (minimum version 1.12) Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:25:29 2018 OS/Arch: linux/amd64 Experimental: false

五、基本命令

  一、載入鏡像

docker pull 鏡像名

  二、查看全部docker鏡像

docker images

  三、運行鏡像(前臺運行,能夠使用ctrl+c結束)

docker run 鏡像名
#執行過程:
  一、首先將命令發送到本地的Docker Deamon,Docker Deamon會先查找本地的查找鏡像,存在就會執行鏡像
  二、若是找不到,會去遠程倉庫下載鏡像,下載以後會運行鏡像,變成容器
若是報錯,能夠嘗試使用yum update

  四、運行鏡像(後臺運行)

docker run -d 鏡像名

  五、查看當前docker內的運行的鏡像

docker ps

  六、進入docker容器中,執行命令,bash(使用shell命令)

docker exec -it 容器名/容器id bash
#進入容器內後,會給你一個模擬linux的交互模式的終端,這時使用ps查看進程,會看到沒有該命令,你能夠使用下面的指令,在該容器內安裝ps
apt-get update && apt-get install procps

  七、中止鏡像

docker stop 鏡像id

  八、重啓鏡像

docker restart 鏡像id

六、網絡類型

  一、host:容器將不會虛擬出本身的網卡,配置本身的IP等,而是使用宿主機的IP和端口。

  二、Container:建立的容器不會建立本身的網卡,配置本身的IP,而是和一個指定的容器共享IP、端口範圍。

  三、None:該模式關閉了容器的網絡功能。

  四、Bridge:此模式會爲每個容器分配、設置IP等,並將容器鏈接到一個docker0虛擬網橋,經過docker0網橋以及Iptables nat表配置與宿主機通訊。(默認使用的模式)

docker網絡圖

  五、將宿主機的端口和容器內的端口相關聯

#映射主機的端口8080,到容器內的端口80,命令中是小寫p
docker run -d -p 8080:80 鏡像名 #映射容器內全部端口,到主機的隨機端口,命令中的是大寫P
docker run -d -P 鏡像名

  六、docker run建立Docker容器時,能夠用--net選項指定容器的網絡模式,Docker有如下4種網絡模式:

host模式,使用--net = host指定。 container模式,使用--net = container:NAMEorID指定。 無模式,使用--net =無指定。 bridge模式,使用--net = bridge指定,默認設置。

七、製做本身的鏡像

  一、首先準備本身的web項目,而後達成war包

  二、寫一個DockerFile

#先下載tomcat的鏡像
vi DockerFile #在文件中,寫入
from tomcat的鏡像名 MAINTAINER youName youEmail COPY 項目war包名 /usr/local/tomcat/webapps

  三、使用docker build編譯你的DockerFile,.表示當前目錄,將新建的Docker指定一個tag

docker build -t 鏡像名:latest .

  四、啓動本身製做的鏡像

docker run -d -p 8888:8080 鏡像名

  五、下載和使用mysql鏡像

#先下載好mysql的鏡像 #啓動
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=000000 -e MYSQL_DATABASE=order 鏡像名
相關文章
相關標籤/搜索