理論+實驗 詳解Docker部署安裝以及常用命令

Mr_ChenWJ發表於2020-11-10

一 Docker概述

1.1 Docker是什麼

●是一種輕量級的“虛擬機器”
●在Linux容器裡執行應用的開源工具

1.2 Docker與虛擬機器的區別

區別虛擬機器容器
資源佔用
開啟時間30-60秒毫秒級別
安全性系統隔離核心共享
彈性擴充套件執行時間長執行時間短

1.3 Docker的使用場景

●打包應用程式簡化部署
●可脫離底層硬體任意遷移
●例:伺服器從騰訊雲移到阿里雲

二 Docker的核心概念及安裝方式

2.1 Docker核心概念

●映象:
一個面向Docker容器引擎的只讀模板
●容器:
從映象建立的執行例項
●倉庫:
集中儲存映象的地方

2.2 CentOS安裝Docker的兩種方式

●使用CURL獲得Docker的安裝指令碼進行安裝
●使用YUM倉庫來安裝Docker

三 Docker部署安裝

1.安裝依賴包
[root@localhost ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

2.設定阿里雲映象源
[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.安裝Docker-CE
[root@localhost ~]# yum -y install docker-ce		##注意這邊要把本地源改為線網源

4.關閉防火牆以及核心防護
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]# vim /etc/selinux/config 
SELINUX=disabled

5.開啟docker服務
[root@localhost ~]# systemctl start docker.service 
[root@localhost ~]# systemctl enable docker.service 

6.映象加速
[root@localhost ~]# cd /etc/docker/
[root@localhost docker]# ls
key.json
[root@localhost docker]# tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": ["https://p3d56qc5.mirror.aliyuncs.com"]
> }
> EOF
{
  "registry-mirrors": ["https://p3d56qc5.mirror.aliyuncs.com"]
}
[root@localhost docker]# ls
daemon.json  key.json
[root@localhost docker]# vim daemon.json ·
[root@localhost docker]# systemctl daemon-reload 
[root@localhost docker]# systemctl restart docker

7.網路優化
[root@localhost docker]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@localhost docker]# sysctl -p
net.ipv4.ip_forward = 1
[root@localhost docker]# service network restart 
Restarting network (via systemctl):                        [  確定  ]
[root@localhost docker]# systemctl restart docker

四 Docker映象建立與操作

[root@localhost docker]# docker version				##檢視docker版本資訊

[root@localhost docker]# docker search nginx			##查詢指定映象

[root@localhost docker]# docker pull nginx			##下載映象(分散式存放,分層下載)

[root@localhost docker]# docker images				##檢視下載映象資訊

[root@localhost docker]# cd /var/lib/docker/image/overlay2/		##下載檔案的資訊位置
[root@localhost overlay2]# vi repositories.json 			##映象資訊

[root@localhost overlay2]# docker inspect c39a868aad02		##獲取映象資訊

[root@localhost overlay2]# docker tag nginx:latest nginx:web		##新增新標籤

[root@localhost overlay2]# docker images | grep nginx		##檢視指定映象資訊

[root@localhost overlay2]# docker rmi nginx:latest 			##刪除映象

[root@localhost overlay2]# docker save -o /opt/nginx nginx:web 	##存出映象命名為nginx存在opt目錄下

[root@localhost overlay2]# docker load < /opt/nginx 		##載入映象

[root@localhost overlay2]# docker tag nginx:web cwj/nginx:web	##改標籤

[root@localhost overlay2]# docker push cwj/nginx:web		##上傳映象

五 Docker容器操作

[root@localhost overlay2]# docker create -it nginx:web /bin/bash	##建立容器(i:讓容器的標準輸入保持開啟;t:讓Docker分配一個偽終端)

[root@localhost overlay2]# docker ps -a 				##檢視容器(a:列出所有的容器,包括未執行的容器,不加-a列出執行的容器)

[root@localhost overlay2]# docker start f9eaf968d810		##啟動容器


[root@localhost overlay2]# docker exec -it dd8130492672 /bin/bash	##進入已經在執行的容器中(一定是執行狀態)

[root@dd8130492672 /]# exit					##退出容器

[root@localhost overlay2]# docker run paigeeworld/centos7 /usr/bin/bash -c ls /	##啟動執行命令檢視系統根目錄,-c:執行完釋放掉容器,狀態是Exited
相當於:	docker pull paigeeworld/centos7
	    docker create -it paigeeworld/centos7 /bin/bash
	    docker start 0c568b6fc0fd

[root@localhost overlay2]# docker run -d paigeeworld/centos7 /bin/bash -c "while true;do echo hello;done"	##持續後臺執行,-d:表示在後臺執行

[root@localhost ~]# docker stop 31cdd35ce6e4			##終止執行

[root@localhost overlay2]# docker export f9eaf968d810 > nginx_c	##容器匯出

[root@localhost overlay2]# cat nginx_c | docker import - nginx:web	##容器匯入,只會生成映象,而不會建立容器

[root@localhost overlay2]# docker rm f9eaf968d810 		##刪除容器(正在執行的容器不能被刪除)

[root@localhost overlay2]# docker ps -a | awk '{print "docker rm "$1}' | bash	##批量刪除未執行的容器

相關文章