docker部署以及鏡像基本管理


title: docker部署以及基本鏡像管理
image:images\theme\docker.jpg


容器在本質上是一個進程,擁有自己的IP地址 系統文件 主機名 進程管理

程序:shell、軟件、命令

進程:正在運行的程序

命令執行結束時 進程被關閉 釋放內存資源

容器和虛擬機的區別:

虛擬機:1、模擬計算機硬件 啓動時正常走啓動流程;2、虛擬機有自己的內核;3、需要走開機啓動流程,有自己的內核

容器:1、不需要模擬計算機硬件;2、共用宿主的內核;3、不需要走開機啓動流程,共用宿主機內核

容器的優勢:啓動快(直接啓動第一個進程 不走開機啓動流程)、性能高(共用宿主機內核)、損耗少(不需要模擬計算機硬件 不損耗硬件性能)、輕量級(消耗少)

使用容器替代虛擬機最終目的:最終目的是降低成本

100臺虛擬機 需要在10臺宿主機上跑

100臺容器 需要跑在6臺宿主機上 省4臺宿主機的管理費用

補充說明:

開機啓動流程:按下電源按鈕,BIOS開機自檢,根據BIOS的啓動項選擇設備來啓動,選擇硬盤啓動,引導程序,選擇操作系統,加載內核,啓動第一個進程,第一個進程再啓動其他進程,操作系統啓動完成



BIOS啓動項的順序:從上到下



引導程序兩種:引導程序放在磁盤的第一個扇區

grub

uefi:支持圖形界面

docker發展歷史

2008年 dotcloud paas

2013年要黃了 CEO決定開源,絕地逢生

傳統docker 1.1-1.13

docker ce 社區辦 17.03 17.06 17.19 17.12 18.03 18.06 18.09 19.03

docker ee 企業版 17

傳統docker和docker ce不兼容 所以在安裝docker ce之前要檢查一下環境中有沒有傳統docker

安裝docker

安裝前檢查環境中是否已經安裝傳統docker,以免不兼容問題

wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo 下載docker源
sed -i s+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo 修改爲國內地址
yum install docker-ce -y
systemctl enable docker
systemctl start docker
docker version  測試檢查

docker 是使用golang語言開發

docker是一個CS架構:主要鏡像 容器 倉庫 網絡 存儲 監控

docker 是一個軟件的打包技術

docker容器 安裝好mysql5.7 打包成鏡像 發不到docker倉庫

用戶:下載docker鏡像 mysql5.7,啓動容器 啓動mysql5.7

類似功能:kvm也可以做到 在虛擬機中安裝mysql5.7 然後導出kvm的磁盤文件,生成虛擬機配置文件 導入啓動虛擬機

pull鏡像並運行容器

docker  run -d  -p 80:80  nginx:latest
run 創建並啓動一個容器
-d  放後臺啓動
-p  端口映射
nginx:latest docker鏡像名稱

搜索鏡像(倉庫地址在國外)

docker search  httpd

配置docker鏡像加速

1、docker鏡像加速(新建json文件)

[root@docker01 yum.repos.d]# cat /etc/docker/daemon.json {   "registry-mirrors": [     "https://registry.docker-cn.com",     "http://hub-mirror.c.163.com",     "https://docker.mirrors.ustc.edu.cn"   ] }

2、重啓docker

systemctl restart  docker 

3、測試

docker search  httpd

解釋:

[root@docker01 yum.repos.d]# docker search  httpd
NAME  鏡像名字                                  DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
用戶名 鏡像名字                                  描述 

使用鏡像時的原則:優先用官方的 星數多的

下載鏡像:不指定版本 默認下載最新版(Using default tag: latest)

docker  image  pull  httpd

登錄官方網站 查看鏡像的版本

https://hub.docker.com/

如果pull的版本不存在會報錯:

Error response from daemon: manifest for httpd:2.4.42 not found: manifest unknown: manifest unknown

docker pull 下載鏡像

docker push 推送鏡像

查看 已有鏡像

[root@docker01 yum.repos.d]# docker  images REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE nginx               latest              9beeba249f3e        10 days ago         127MB httpd               2.4.43              d4e60c8eb27a        10 days ago         166MB httpd               latest              d4e60c8eb27a        10 days ago         166MB

導出鏡像

[root@docker01 yum.repos.d]# docker  image save  nginx:latest -o docker_nginx.tar.gz
[root@docker01 yum.repos.d]# ll
total 127572
-rw-r--r--  1 root root      2523 May 26 10:23 CentOS-Base.repo
-rw-r--r--  1 root root      2880 May 26 10:24 docker-ce.repo
-rw-------  1 root root 130625536 May 26 11:21docker_nginx.tar.gz`
drwxr-xr-x. 2 root root       187 May 26 10:23 test
[root@docker01 yum.repos.d]#

鏡像是把一堆文件打成的壓縮包 可以解壓

導入鏡像

[root@docker02 ~]# docker image  load  -i docker_nginx.tar.gz

docker pull拉取到本地的鏡像 存放在本地路徑:

/var/lib/docker/overlay2/

刪除鏡像

docker image  rm  b7b28af77ffe  id方式  docker image rm  alpine:latest  名字方式

查看鏡像列表

[root@docker01 ~]# docker images

docker鏡像名字 類似linux硬連接

docker鏡像id 類似linuxinode

鏡像在容器使用時 不能刪除

docker命令都進行了分組

docker image 鏡像命令

docker container 容器命令

docker volume 卷命令

docker network 網絡命令

[root@docker01 ~]# docker image

build 構建鏡像

import 導入鏡像 不會導入鏡像的名稱和版本 不推薦

load 導入鏡像 會導入鏡像的名稱和版本

prune 清理無效鏡像

push 推送

save 導出

history 構建鏡像的歷史命令

inspect 鏡像屬性

ls 查看鏡像

pull 拉取

rm 刪除鏡像

tag 打標籤

鏡像打標籤

docker image   tag  a7fc88580f30 test:v1

查看鏡像屬性

docker image  inspect a7fc88580f30

批量操作

批量導入鏡像

for   n in ls *.tar.gz;do docker image  load  -i $n ; done

將多個鏡像打成一個包

docker image  save   nginx:latest   centos  httpd -o test.tar.gz
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章