首页 > 其他分享 >docker 入门

docker 入门

时间:2023-08-01 22:55:05浏览次数:38  
标签:容器 入门 虚拟化 centos 镜像 docker id

docker 入门

虚拟化技术介绍

# 虚拟化
在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。

​ 在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用

​ 虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。

# 虚拟化技术
	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:无服务
   
    

docker 组件介绍

# Docker:容器技术 ,隔离
	-dotCloud  go写的软件
    - Docker 的基础是 Linux 容器(LXC)等技术
    - LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单
    
# 好处:
	-举例说明:
    	-开发阶段:win上开发的,python3.8 ,第三方模块
        -上线阶段:linux      python3.8   第三方模块 不同平台有差异
        -使用docker统一开发和部署环境
        	-只要部署项目运行器一个容器即可(python+django+drf+uwsgi+代码)
            -java容器:(jdk+tomcat+java代码)
            
# docker  cs架构软件
	-服务器端,客户端
    -客户端cli
    -客户端和服务端交互使用resfulapi
    	-客户端:docker ps----》http请求,符合resful规范----》服务端 执行
        
        
 # 架构
	- 客户端cli
    -服务端 server
    	-Images:镜像
        -containers:容器 (想象成一个操作系统运行了一个软件)
        -networks:网络
        -Volumes:数据卷,文件
    -Registry:远程仓库
    	-镜像
        
        
# 镜像和容器
	-镜像是从远程拉去下来的文件
    -容器是镜像运行后得到的,一个镜像可以运行多个容器
    -面向对象中得  类:镜像     对象:容器
    -容器:把容器当做一个操作系统上运行了软件
    	-运行了redis容器:一个操作系统运行了redis
        
       

docker安装启动

# docker 可以安装在各个操作系统之上
	-centos 7.5
    -win10 以上可以
    -mac
    -最好,在虚拟机的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  # Docker version 20.10.22, build 3a2c30b

        
        
# win和mac :https://get.daocloud.io/#install-docker-for-mac-windows


# 配置国内镜像站:仓库在国外,下载镜像很慢,配置国内镜像站
	-阿里云: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 命令
    # 启动docker:
    systemctl start docker
    #停止docker:
    systemctl stop docker
    #重启docker:
    systemctl restart docker
    #查看docker状态:
    systemctl status docker
    #开机启动:
    systemctl enable docker
    #查看docker概要信息
    docker info  # docker客户端,服务端的概要信息

docker镜像操作

# 搜索镜像
	docker search 镜像名字 
    直接取网站搜索
# 从远程仓库拉去的文件
	-docker pull centos:centos7.9.2009
    -docker pull python:3.8-slim
    -docke pull redis  # 最新版
    -docker pull mysql:5.7
# 查看本地镜像
	docker images
    
# 删除镜像
	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 pull 拉取
    - 压缩包还原
    - 容器反打包成镜像
    - dockerfile构建

docker容器操作

# 1 基于镜像运行成容器
	-创建容器,运行容器
    # -it和-id区别 :it进入到容器内部 ,id以守护进程运行容器,不进入
    # --name=名字   不写会随机
    # centos:7   镜像的名字和tag
    # -p 3307:3306   把宿主机的3307端口映射到容器的3306端口,以后访问宿主机的3307,就等于访问容器的3306
    # -v /root/lqz:/home  把宿主机的/root/lqz映射到容器的 /home ,以后再宿主机或容器内修改这个文件夹,都会相互影响
    # 在容器内部,退出来:exit ---》只要退出,容器也退出了
	-docker run -it  --name=centos centos:7 # 基于centos:7镜像 创建并运行容器,进入到容器中,名字为centos
    
    
# 2 查看正在运行的容器
	docker ps
# 3 查看所有容器
	docker ps -a
    
    
# 4 在容器上执行命令
	docker exec 容器id ls
    docker exec 12a6a0281168 ls
    
    docker exec -it 12a6a0281168 /bin/bash
    
    
 # 5 停止容器
	docker stop 容器id
    
 # 6 运行容器
	docker 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地址
    
# 你能不能基于centos镜像运行成容器---》在容器中安装python解释器

标签:容器,入门,虚拟化,centos,镜像,docker,id
From: https://www.cnblogs.com/joseph-bright/p/17599363.html

相关文章

  • 基于 Habana Gaudi 的 Transformers 入门
    几周前,我们很高兴地宣布HabanaLabs和HuggingFace将开展加速transformer模型的训练方面的合作。与最新的基于GPU的AmazonWebServices(AWS)EC2实例相比,HabanaGaudi加速卡在训练机器学习模型方面的性价比提高了40%。我们非常高兴将这种性价比优势引入Transform......
  • JDBC从入门到精通深入学习路线图?
    JDBC从入门到精通深入学习路线图?JDBC从入门到精通深入学习路线图?学习JDBC(JavaDatabaseConnectivity)从入门到精通,可以按照以下深入学习路线图进行:1.Java基础知识:在开始学习JDBC之前,建议先掌握Java的基础知识,包括面向对象编程概念、Java语法、异常处理等等。2.SQL语言:熟悉SQ......
  • Docker
    1.docker是一个快速交付应用,运行应用的技术 1.1docker可以将应用及其依赖和运行环境(系统依赖库)打包成一个镜像,可以移植到任意的linux系统上 1.2运行时利用沙箱技术让各个容器隔离,各个应用互不干扰,启动移动通过一条命令完成,方便快捷 ......
  • Vue入门命令2
    Vue入门命令2表单控制#input:checkbox(单选,多选),radio(单选)<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="./js/vue.js"></script......
  • 从入门到精通,大厂内部整理Android学习路线
    前言当今随着互联网的日益发展,许多开发者也想来这个行业尝尝甜头,甚至没有基础的开发者也进门了,因此,这个Android零基础教程就分享出来。但是对于Android新手入门,没有一个好的学习方向,学习规划,学习教程,是万万不行的。新手入门就来就处于啥也不知道的状态,而网上的教程太过于分散,没有完......
  • C++入门到放弃(06)——this指针
    1.基本介绍this本身很容易理解:在C++所有类当中,都将this(关键字)指针设置为当前对象的地址。this本身是指针,*this是变量,类型为当前类的类型。2.举例刚开始看到this指针的时候,总会觉得奇怪,怎么会有这种用法。我们需要当前类的变量以及函数的时候,明明可以直接在类的内部直接调用,......
  • C++入门到放弃(05)——内联函数: inline
    ​1.基本用法要使用内联函数时,必须遵循如下规则:在函数声明前加上关键字inline,或着在函数定义前加上关键字inline,二者取其一即可。inlineintmax(inta,intb);//取其一即可inlineintmax(inta,intb){//取其一即可returna>b?a:b;}另外一种做......
  • Python爬虫入门
    前言网页构成首先介绍一个网页的基本构成:HTML负责网页的结构,CSS负责样式的美化,Javascript负责交互逻辑。HTMLCSSJavascript点击F12打开开发者工具(部分电脑可能为Fn+F12),使用元素选择工具,再将鼠标指针移动到任意网页元素,单击该元素则该元素对应的网页源代码会被选中。......
  • 使用Maven插件为SpringBoot应用构建Docker镜像
    Docker开启远程API用vim编辑器修改docker.service文件#生成证书opensslgenrsa-aes256-outca-key.pem4096opensslreq-new-x509-days365-keyca-key.pem-sha256-outca.pemopensslgenrsa-outserver-key.pem4096opensslreq-subj"/CN=localhost"-sha256-......
  • Docker 发布Jenkins
    更新系统:sudoaptupdatesudoaptupgrade安装必要的依赖:sudoaptinstallapt-transport-httpsca-certificatescurlsoftware-properties-common添加Docker官方的GPG密钥:curl-fsSLhttps://download.docker.com/linux/debian/gpg|sudogpg--dearmor-o/usr/......