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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章