Docker安裝與基礎使用
阿新 • • 發佈:2019-02-16
details 操作系統 csdn fly abc and nsenter ssh strong
一、Docker介紹
Docker介紹
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。Docker是通過內核虛擬化技術(namespaces和cgroups)來提供容器的資源隔離與安全保障。容器是完全使用沙箱機制,相互之間不會有任何接口。基於go語言並遵從Apache2.0協議開源。
Docker官方網站
Docker官方文檔
Docker組成
- Docker Client:CLI命令
- Docker Server:守護進程
Docker組件
(與虛擬機進行對比)
- Docker Image 鏡像:靜態概念,把應用、代碼和所需應用庫(Bins/Libs)運行環境進行封裝和打包
- Docker Container 容器:動態概念,從鏡像創建的一個實例,容器之間相互隔離,可進行啟停、創建和刪除操作
- Docker Repository 倉庫:存放鏡像
Docker特點
- 可管理性:單進程、不建議啟動SSH
- 前臺運行進程,進程結束時容器停止,Docker只實現進程級別的隔離(虛擬機實現操作系統級別的隔離)
- 基於C/S架構:Server端服務中斷則運行於其上的所有容器停止
- 簡化配置與快速部署:應用與運行環境進行打包,快速產品交付,可同時進行多個版本測試
- 不可變理論:原來的不改動,重新創建新的,保證環境一致性
- 支持微服務架構:自動化擴容,Docker在京東的應用
二、Docker安裝
安裝Docker Community Edition (CE)
cd /etc/yum.repos.d/ && wget https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io -y
查看docker版本
docker -v
查看docker命令幫助
docker --help
docker inspect --help
Docker安裝官方教程
三、Docker基本使用
Docker Server相關命令
查看Docker Server守護進程運行狀態
systemctl status docker
systemctl start docker
Docker鏡像管理相關命令
顯示當前所有鏡像
docker images
搜索docker鏡像
docker search nginx
docker search centos
拉取/下載docker鏡像
docker pull centos
docker pull nginx
以tar格式導出本地docker鏡像
docker save -o nginx.tar nginx
導入本地docker鏡像
docker load -i nginx.tar
刪除docker鏡像
docker rmi <IMAGE ID>
四、Docker容器相關命令
Docker容器管理方式
- 通過docker容器的CONTAINER ID
- 通過docker容器的NAMES
Docker容器相關命令
查看所有docker容器及狀態
docker ps -a
#只顯示運行中的容器
docker ps
啟動docker容器,並執行echo命令,最後容器進入停止狀態
docker run --name mycentos centos /bin/echo "abc"
#命令格式,註意鏡像名稱放在所有參數的後面
#docker run [ARG...] IMAGE [COMMAND] [ARG...]
#--rm 表示容器停止後刪除
docker run --rm centos /bin/echo "abc"
啟動docker容器,分配TTY和打開容器的標準輸入
docker run --name mycentos -t -i centos /bin/bash
#然後進入該容器執行命令
ps aux
#顯示的是物理機狀態(說明docker只實現進程級別的隔離)
cat /proc/cpuinfo
free -h
exit
重新啟動指定容器
docker start mycentos
容器執行指定命令
docker exec mycentos ps -aux
docker exec mycentos w
刪除容器
docker rm mycentos
#-f 強制刪除運行中的容器
docker rm -f mycentos
五、進入指定容器
方法一
#首先安裝util-linux工具包,包含nsenter工具
yum install util-linux -y
#獲取容器的PID
docker inspect -f {{.State.Pid}} mycentos
#進入命名空間,nsenter --help
nsenter -t <PID> -m -u -i -n -p
ps -ef
#不會直接退出docker,因為nsenter創建了一個線程
exit
對方法一進行優化:編寫shell腳本
[root@linux-202 ~]# cat docker_in.sh
#!/bin/bash
#Use Docker name and nsenter tool to attach Docker.
DOCKER_NAME=$1
DOCKER_PID=`docker inspect -f {{.State.Pid}} $DOCKER_NAME`
nsenter -t $DOCKER_PID -m -u -i -n -p
[root@linux-202 ~]# chmod +x docker_in.sh
[root@linux-202 ~]# ./docker_in.sh mycentos
方法二
docker attach mycentos
#會直接退出docker
exit
方法三
docker exec -i -t mycentos /bin/bash
Docker安裝與基礎使用