docker介绍及基本操作命令

docker

1.介绍
# 虚拟化
虚拟化是一种资源管理技术,打破实体结构间的不可切割的障碍。
虚拟化技术:VMware,VirtualBox,阿里云服务器,docker 虚拟化技术

# 虚拟化相关名词
	-kvm,VMware:kvm:Kernel-based Virtual Machine,linux上虚拟化的技术,把一台机器虚拟化成多台
	-openstack:python写的,创建,管理,销毁 虚拟机的管理工具,web管理界面,点点点就能创建,删除虚拟机
    -kvm+openstack的方案:公司多台服务器,openstack是管理虚拟机的工具
    -docker:容器技术
    -k8s:kubernetes,kubernetes是管理container(docker)的工具
    
    -公司主流:k8s+docker
    	kvm+k8s+docker
    
    功能上:kubernetes是管理container的工具,openstack是管理VM的工具。
	业务上:openStack是定位于laaS平台的项目,Kubernetes是定位于PaaS平台的项目
	时间上:云平台方案的第一阶段:虚拟机;云平台方案的第二阶段:容器技术
    
    虚拟机需要虚拟化出操作系统【笨重,资源消耗大】
    容器【轻量级,资源消耗小】
# IAAS  PAAS  SAAS  FAAS
一 IaaS基础设施服务
IaaS: Infrastructure-as-a-Service(基础设施即服务)

第一层叫做IaaS,有时候也叫做Hardware-as-a-Service,几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,让你的业务运行起来。

但是现在有IaaS,你可以将硬件外包到别的地方去。IaaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用。

一些大的IaaS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat.

# 买了阿里云的服务器,就相当于买了阿里云的IAAS服务

二 paas平台即服务
	不仅卖服务器,还卖软件
    OSS对象存储,阿里云mysql服务,阿里云的redis

三 saas软件即服务
	-多租户
	-社保局:社保软件

    
四 FAAS:函数及服务
	Serverless:无服务
2.docker组件
docker的基础是linux容器(LXC)等技术
LXC的基础上docker进行了进一步的封装,让用户不需要去关心容器的管理使得操作更为简单,用户操作dockr的容器就像操作一个快速轻量级的虚拟机一样简单
# 好处:
 使用docker统一开发和部署环境
   -只要部署项目运行起一个容器即可(python+django+drf+uwsgi+代码)
# 架构
 cs架构软件 -客户端cli
           -服务端server
           【images镜像,containers容器,networks网络,volumes数据卷/文件】
           -远程仓库 registry
             【镜像】
 # 容器和镜像
 镜像就是从远程仓库拉取下来的文件
 容器是镜像运行后得到的,【类似于运行的软件】,一个镜像可以运行多个容器
3.docker安装和启动
docker可以安装在各个操作系统之上【建议在虚拟机的centos上安装】
# 版本介绍
	Docker-CE指Docker社区版,由社区维护和提供技术支持,为免费版本,适合个人开发人员和小团队使用。
	Docker-EE指Docker企业版,为收费版本,由售后团队和技术团队提供技术支持,专为企业开发和IT团队而设计
 
# 卸载:
 - 停止服务:systemctl stop docker
 - 过滤:yum list installed | grep docker
 - yum remove docker-ce.x86_64 docker-ce-cli.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64
 - rm -rf /var/lib/docker

# 安装:
 - 先安装依赖:
  sudo yum install -y yum-utils device-mapper-persistent-data lvm2
 - 把yum源设置为阿里云
  sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 - 安装docker
  sudo yum install docker-ce
 - 查看docker的版本
  docker -v
    
 # 配置国内镜像站
 - 阿里云:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
 - mkdir /etc/docker
 - vim /etc/docker/daemon.json
 - 写入
       {
      "registry-mirrors": ["https://x1566319.mirror.aliyuncs.com"]
    	}
  - 重启
    sudo systemctl daemon-reload
    sudo systemctl restart docker
   
docker命令
1.启动docker
  systemctl start docker
2.停止docker
  systemctl stop docker
3.重启docker
  systemctl restart docker
4.查看docker状态
  systemctl status docker
5.开机启动
  systemctl enable docker
6.查看docker概要信息
  docker info  # docker客户端,服务端的概要信息

4.docker镜像操作
1.搜索镜像
  docker search 镜像名字
2.从远程仓库拉取文件
  docker pull centos:centos7.9.2009
  docker pull python:3.8-slim
  docker pull redis  # 最新版
3.查看本地镜像
  docker images
4.删除镜像
  docker rmi 镜像id
  一次性删除所有镜像
  docker rmi `docker images -q`
  一次性删除所有容器
  docker rm `docker ps -aq`
 

# 自制镜像步骤【了解】
	-自己制作了一个镜像,想传到自己的仓库里
    - 把本地的镜像打个标签
    docker tag 镜像id liuqingzheng/xxxx
    docker login  #输入用户名密码
    docker push liuqingzheng/xxxx
    你的仓库你就能看到了
 
# 镜像分层的好处
所有的docker镜像都起始于一个基础镜像层,当进行修改或增加新的内容的时候,就会在当前镜像层之上创建新的镜像层。分层时有文件更新直接替换,基础镜像一样时直接拿过来复用
镜像分层的好处:资源共享,方便复杂迁移,容易实现资源复用
更轻量:所需空间更小,更有利于大规模部署
更高效,更敏捷,更灵活


# 如何获取镜像:
	- docker pull 拉取
    - 压缩包还原
    - 容器反打包成镜像
    - dockerfile构建
docker容器操作
1.基于镜像运行成容器
 docker run -it  --name=centos centos:7 # 基于centos:7镜像 创建并运行容器,进入到容器中,名字为centos
 【-it和-id的区别:it是进入到容器内部,id以守护进程运行容器】
# -p 3307:3306 把宿主机的3307端口映射到容器的3306端口,以后访问宿主机的3307端口就等于访问容器的3306
# -v /root/lll:/home 把宿主机的/root/lll映射到容器的/home 以后宿主机或容器上修改这个文件夹都会产生影响

2.查看正在运行的容器
 docker ps
3.查看所有容器
 docker ps -a
4.在容器内部退出
 exit  【只要退出容器,容器就不是运行状态】
5.在容器上执行命令
 docker exec 容器id ls
 eg:docker exec 12a6a0281168 ls
    docker exec -it 12a6a0281168 /bin/bash
    
6.停止/运行容器
 docker stop/start 容器id
7.删除容器
 docker rm 容器id   【正在运行的容器不能删除】
8.文件拷贝
 	-把宿主机文件cp到容器内部
    	docker cp 宿主机文件  容器id:容器路径
    -把容器内部文件cp到宿主机
    	docker cp 容器id:路径/文件  /root/ss.py
9.查看容器信息
  docker inspect 容器id
  docker inspect --format='{{.NetworkSettings.IPAddress}} 容器id  # 查看ip地址
posted @ 2022-12-20 08:55  Hsummer  阅读(54)  评论(0编辑  收藏  举报