Docker 的安裝以及常用命令

1.docker是什麼?

Docker 是 採用Linux Container技術的高級容器引擎,它能夠提供輕量級的虛擬化,它的源代碼託管在 Github 上,它是 基於go語言開發並遵從Apache2.0協議開源的一種軟件。

2.docker三大金剛

鏡像:(image) 運行環境的集合,鏡像運行爲容器
      啓動鏡像後會增加一個空白層,所有操作都會寫入到空白層上,空白層會覆蓋下方的配置和操作。只能讀取不能寫入
倉庫:(repository) 存放鏡像
容器:(container) 已運行的環境
      不同的容器工作在相對獨立的空間,由namespace隔離,一個鏡像可以啓動多個容器
      如果一個容器可以穩定工作,它在前端需要 有一個守護進程

3.docker網絡管理

docker一開啓會自動創建一個叫做docker0的網橋,可以使各個容器之間可以相互通信,容器沒有自己的內核容器與容器之間採用network-namespace進行網絡隔離:vethX
每一個容器會連接到自己的namespace-- vethX上,vehtX是通過網橋設備創建的,彼此之間可以相互通信,因此容器之間也是可以相互通信。
網橋設備與真實網卡之間通過NAT實現通信

4.Docker的4種網絡模式

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

4.1 host模式

如果啓動容器的時候使用host模式,那麼這個容器將不會獲得一個獨立的Network Namespace,而是和宿主機共用一個Network Namespace。容器將不會虛擬出自己的網卡,配置自己的IP等,而是使用宿主機的IP和端口。

4.2 container模式

container模式指定新創建的容器和已經存在的一個容器共享一個Network Namespace,而不是和宿主機共享。新創建的容器不會創建自己的網卡,配置自己的IP,而是和一個指定的容器共享IP、端口範圍等。同樣,兩個容器除了網絡方面,其他的如文件系統、進程列表等還是隔離的。兩個容器的進程可以通過lo網卡設備通信。

4.3 none模式

這個模式和前兩個不同。在這種模式下,Docker容器擁有自己的Network Namespace,但是,並不爲Docker容器進行任何網絡配置。也就是說,這個Docker容器沒有網卡、IP、路由等信息。需要我們自己爲Docker容器添加網卡、配置IP等。

4.4 bridge模式

bridge模式是Docker默認的網絡設置,此模式會爲每一個容器分配Network Namespace、設置IP等,並將一個主機上的Docker容器連接到一個虛擬網橋上。下面着重介紹一下此模式。

二、docker安裝
1.安裝前準備工作:

centos7.0以上內核版本

關閉selinux與iptables,配置yum源,可以連外網:ping www.baidu.com

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
systemctl disable firewalld.service
systemctl stop firewalld.service

重啓   reboot

2.docker安裝

2.1腳本直接安裝最新版本docker

yum clean all
yum makecache
yum -y upgrade

 
#升級後內核版本爲7.4-1708  或  7.5-1804
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
docker run hello-world
docker version  #必須有client端與server端!!
 


2.2 yum安裝

2.2.1、更新yum源

yum clean all
yum makecache
yum -y update
2.2.2、卸載舊版本(如果安裝過舊版本的話)
yum remove docker  docker-common docker-selinux docker-engine

2.2.3、安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的

yum -y install yum-utils device-mapper-persistent-data lvm2
2.2.4、設置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
2.2.5、可以查看所有倉庫中所有docker版本,並選擇特定版本安裝
yum list docker-ce --showduplicates | sort -r

2.2.6、安裝docker
安裝最新版本的docker:    yum -y install docker-ce 

安裝指定版本的docker:如------->   yum -y install docker-ce-17.12.0.ce

2.2.7、啓動並加入開機啓動

systemctl start docker
systemctl enable docker
2.2.8、驗證安裝是否成功
docker version

##有client和service兩部分表示docker安裝啓動都成功了

2.2.9 別名設置 根據個人情況而定

vim /root/.bashrc
alias vi='vim'
alias dp='docker ps -a '
alias di='docker images'
alias dr='docker rm -f $(docker ps -a -q)'
 
.  /root/.bashrc
三、docker基本命令
docker images #查看鏡像
docker ps #查看當前已經運行的容器
docker ps -a #查看當前所有的容器
docker ps -a -q #只顯示當前運行的容器的ID號
docker rm -f +前4位容器ID號
docker rm -f $(docker ps -a -q) #刪除當前運行的所有容器
 
 
docker pull #下載鏡像  docker pull hub.c.163.com/public/centos:6.7-tools
docker run #從鏡像運行爲容器
docker start/stop    容器啓動停止
docker rmi +別名或ID號    Docker    鏡像的刪除
dockers images -a -q    #顯示鏡像所有的ID號
docker rmi -f $(docker images -a -q) #強制刪除所有鏡像
  單一容器管理命令 :
docker ps --no-trunc             #查看容器詳細信息
docker stop/start CONTAINERID    #通過容器id啓動/停止
docker run --restart=always      #容器的自動啓動
docker start/stop MywordPress    #通過容器別名啓動/停止
docker inspect MywordPress       #查看容器所有基本信息    
docker logs MywordPress          #查看容器日誌
docker stats MywordPress         #查看容器所佔用的系統資源
docker exec 容器名 容器內執行的命令 # 容器執行命令
docker exec -it 容器名 /bin/bash  #登陸容器的bash

 其他命令 :
1.docker info        守護進程的系統資源設置
  docker history 鏡像名    查詢鏡像的分層
            --no-trunc     顯示完整的歷史命令
 
2.容器打包成鏡像
docker commit   93f2e50a3439/centos6    pqj/jingxiang:v1.0
      打包命令    容器ID/容器名         誰的/鏡像名字:版本號
 
3.docker-compose 多容器編排工具
docker-compose up  -d    創建啓動項目
docker-compose start    啓動項目
docker-compose stop    關閉項目
 

4.鏡像改標籤
docker tag 鏡像ID  pqj/test:1.0(xx/xx/xx:xx)  #一般情況下要上傳鏡像的時候才需要改標籤!
docker tag peng/tomcat:v1.0  docker.pqj.com/library/tomcat:v1.0
 
5.鏡像導出入導入
docker save -o /root/pqj.tar pqj/jingxiang:v1.0 #鏡像導出
docker load -i test.tar  #鏡像導入
 
6.Docker程序將讀取Dockerfile,根據指令生成定製的image。
docker    build    -t    wangyang/jdk-tomcat   . 

 

發佈了202 篇原創文章 · 獲贊 88 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章