1-docker安装和配置、虚拟化、配置国内源、镜像操作、容器基本操作(run运行容器、-v目录映射、-p端口映射、容器其他操作)

1 docker和虚拟化
2 docker安装和配置
2.0 docker 中的一些概念
2.1 配置国内源(不配也可以,只是会从国外仓库下载)
3 镜像操作

4 容器操作
4.1 容器基本操作
4.2 run运行容器
4.3 -v目录映射
4.4 -p端口映射
4.5 容器其他操作

1 docker和虚拟化

## 什么是虚拟化在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破【实体结构间的不可切割的障碍】,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件  对资源充分利用虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。# 什么是Docker
Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 [GitHub](https://github.com/docker/docker) 上进行维护# 就是虚拟化的一种,更轻量级如果使用虚拟机---》一台机器--》最多能运行 数量比较少的虚拟机如果使用docker--》一台机器---》可以运行出成千上百台docker容器# 容器与虚拟机比较

在这里插入图片描述

2 docker安装和配置

# 在linux机器上安装
0 卸载dockeryum remove docker docker-common  docker-selinux docker-enginerm -rf /var/lib/docker1 yum 包更新到最新sudo yum update2 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的.sudo yum install -y yum-utils device-mapper-persistent-data lvm23 设置yum源为阿里云sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo4 安装dockersudo yum install docker-ce5 安装后查看docker版本docker -v6 启动dockersystemctl status docker  # 查看装填systemctl start docker   # 启动systemctl stop docker    # 停止7 拉取镜像-cento7      docker pull centos:7-redis       docker pull redis-mysql5.7    docker pull mysql:5.78 查看本地镜像docker images9 运行成容器:运行centos镜像成容器docker run -di --name=centos  centos:710 查看正在运行的容器docker psdocker ps -a11 进入容器docker exec -it 容器id/bin/bash

2.0 docker 中的一些概念

# docker 是一个cs架构软件c端:客户端s端:服务端只是现在c和s都在同一台机器上# 镜像(Images):一堆文件---》当成 虚拟机上有个ios文件,操作系统的文件[centos7.iso,windows10.iso]-镜像哪里来?目前是从远程仓库拉取的
# 容器(containers)-镜像运行---》得到容器---》以后就把容器当成一个可以使用的操作系统即可-一个镜像---》可以运行得到很多容器
# 远程仓库(Registry)-放着一个个镜像--》一堆文件# 镜像和容器的关系-跟  类  和   对象-一个类,可以产生很多对象,每个对象是一个独立个体

在这里插入图片描述

2.1 国内源(不配也可以,只是会从国外仓库下载)

# 远程仓库在国外[python 下第三方模块:pypi上---》配置国内镜像站]
# 使用国内源,下载镜像时,速度会快---》阿里云
# 参照阿里云提供的笔记做:https://cr.console.aliyun.com/cn-shanghai/instances/mirrorssudo mkdir -p /etc/docker # 如果有,就不需要创建了
vim /etc/docker/daemon.json 
# 加入
{"registry-mirrors": ["https://x1566319.mirror.aliyuncs.com"]
}
# 保存退出
sudo systemctl daemon-reload # 重新加载docker配置
sudo systemctl restart docker# 重启docker
# 国外docker 仓库:
https://hub.docker.com/# 搜索想要找的镜像,找到固定版本# 搜到后--》下载到本地
docker pull centos:centos7

3 镜像操作

# 1 查找镜像-从https://hub.docker.com/直接搜-使用命令:基本不用 docker search 名字# 2 下载镜像docker pull 镜像名:版本号   # 官方有的的才能下下来,没有的找不到docker pull 镜像名  # 如果不写版本号,下最新docker pull mysql:5.7docker pull redis  # 3 查看本地镜像
docker images  # 等同于 docker image ls
镜像名字      镜像标签    镜像id,以后通过id操作
REPOSITORY   TAG       IMAGE ID            CREATED       SIZE
centos       centos7   eeb6ee3f44bd        2 years ago   204MB# 4 删除本地镜像docker rmi 7614ae94  # 等同于docker image rm 7614ae9453d1docker rmi idid号一次性把本地所有镜像都删除docker images -q  # 查询本地所有镜像,只列出 id号docker rmi `docker images -q`# 总结:镜像是一堆文件---》有的叫redis,有的叫centos就把镜像当成---》一个操作系统内装了某个软件---》运行成容器--》就相当于这个操作系统上装了某个软件

在这里插入图片描述

4 容器操作

# 镜像是一堆文件
# 容器是由镜像 运行得到的---》运行得到后---》你就把一个个的镜像【当成】一个个虚拟机操作系统再运行即可

在这里插入图片描述

在这里插入图片描述

4.1 容器基本操作

# 把镜像运行成容器,并且一个镜像,可以运行出多个容器# 查看正在运行的容器docker ps
# 查看所有容器docker ps -a
# 查看最后一次运行的容器docker ps -l# 启动停止的容器docker start id/名字# 停止运行的容器docker stop 7d5e# 停止所有在运行的容器docker stop `docker ps -q`# 一次性删除所有容器docker rm `docker ps -a -q`# 记住四条:docker psdocker ps -adocker startdocker stop

4.2 run运行容器

#1 docker run 把镜像运行成容器-docker run 参数-i 表示运行容器-d 以守护式容器在后台运行,用这个参数创建出来的容器,命令行还在宿主机上,没有进入到容器内部-t 表示容器启动后会进入容器命令行。加入这参数后,容器创建就能登录进去。即分配一个伪终端。--name 指定容器名字,如果不指定,会随机一个名字-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射-v 表示目录映射关系(前者是宿主机目录,后者是容器的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上# 2 案例 -iddocker run -id --name=centos centos:7  # 执行完,命令在宿主机上,可以通过命令查看正在运行的容器# 3 案例  -it
docker run -it --name=centos centos:7 # 执行完,命令行在容器内,容器很干净,几乎啥软件都没有,可以exit退出到宿主机---》只要退出,容器就停了# 4 创建一个python3.9容器---》不进入docker run -id --name=python python:3.9# 5 启动一个centos容器并且进入,名字叫mycentos,在内部装个vim,然后退出# 6 重点:如果创建容器并进入---》只要退出---》容器就停了容器要运行,必须有个前台进程在运行,并且是夯住(阻塞)的,否则容器就停了# 7 进入到容器内部# 在容器内执行命令docker exec 容器名字/id  命令# 利用这个特性-->进入到容器内部docker exec -it 容器名字/id /bin/bashdocker exec -it python sh# 退出,结束掉 /bin/bashexit

在这里插入图片描述

4.3 -v目录映射

# 运行出一个 centos77 容器,不进入, 做目录映射
# 把宿主机的 /root/lqz文件夹  映射到 容器内部的 /lqz文件夹
# -v可以写多个,可以是文件或文件夹
docker run -id -v /root/lqz:/lqz --name=centos77 centos:7容器内部修改文件---》会影响外部外部修改文件---》影响内部# 目录映射好处是,后期咱们部署django项目1 有个django容器,做好映射,代码放在宿主机上即可,以后更新了代码,只要重启容器,代码就是最新了2 运行mysql容器---》mysql配置文件放在宿主机上做好映射mysql容器---》表数据,放到容器中---》如果删了容器---》数据库全没了表数据,放在宿主机上---》把容器删除---》表数据还在----》再启动一个容器做好映射---》数据都还在

4.4 -p端口映射

# -p参数:端口映射  容器中启动一个mysql5.7 --》容器中的3306监听,宿主机3306没人监听,做端口映射后,宿主机的3306就被docker的这个容器监听了# 启动的mysql的root密码是123456# 启动mysql容器  -p 宿主机端口:容器端口
# 以后台守护进程运行mysql容器,mysql的root用户密码是123456,宿主机和容器做了端口映射
docker run -id --name=mysql -p 3307:3306  -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7#  netstat -nlp |grep 3307 查看本机80端口占用情况
yum install net-tools -y# 以后访问宿主机80端口就等于访问容器的3306端口

在这里插入图片描述

4.5 容器其他操作

# 启动容器docker start 容器id
# 停止容器docker stop 容器id###mysql的容器底层的操作系统是 debian 装软件需要用 
apt-get update
apt-get install vim -y# 文件拷贝(宿主机执行)# 容器的文件copy到宿主机上(不是在容器内执行)docker cp 容器名称:容器目录 需要拷贝的文件或目录docker cp  ae1759ad935:/lqz/xx.txt /root/xx.txt# 宿主机的文件copy到容器中docker cp 需要拷贝的文件或目录 容器名称:容器目录docker cp /root/yy.txt ae1759ad935:/lqz/yy.txt# 查看容器IP地址    docker inspect 容器名称  # 查看容器的详细描述,很多docker inspect ae1759ad935 --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)# 在多个容器之间是可以ping通的(容器和宿主机也可以)
# centos:172.17.0.3
# mysql:172.17.0.2# 删除容器(删除已停止的容器)docker rm 容器id  docker rm `docker ps -a -q`# 无状态的服务(在容器中尽量运行无状态的服务)-mysql reids   有状态,运行过程中产生数据,保存,容器删除,数据就没了-uwsgi+django  无状态的服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/163976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

干货分享:好用的两款封面制作工具

无论你是图文博主还是视频博主,做封面都是必不可少的。关于做封面的产品,我推荐两个:如果你使用手机,我推荐使用醒图;如果你使用电脑,我则推荐稿定设计。 01 醒图 为什么醒图如此出色呢? 首先…

什么是steam搬砖中的散户、倒爷和倒狗?三者有什么区别?

steam/csgo游戏搬砖之如何注册 csgo饰品市场有三种人:散户,倒爷和倒狗。 散户:定义和股票市场中的定义是一样的,拥有同类型饰品数量占存世数量比例较小的人。 倒爷:拥有同类型饰品较多,但是不影响市场平衡…

能否在一台电脑上安全地登录多个Facebook账号?

Facebook是一个流量大、用户多的平台,许多人可能需要在一台设备上管理多个Facebook账号,无论是出于个人或职业需求,都能带来极大地便利。然而,保持每个账号的安全性和隐私性却是一个挑战。本文将介绍如何在一台电脑上安全地登录多…

如何使用cp命令复制文件和目录!【Linux命令合集】

如何使用cp命令复制文件和目录!【Linux命令合集】 Linux命令 只要你使用Linux,你就会一直使用cp命令。用于复制文件和目录。 常用组合键: # -r:复制整个目录(递归) # -p:保留原始文件所有者、组、权限和时间戳 cp -rp foldA fold…

【Linux】:消息队列和信号量

消息队列和信号量 一.消息队列1.原理2.消息队列的各种接口1.创建消息队列2.释放消息队列3.发送和接收信息 二.信号1.概念2.各种接口1.创建信号量2.销毁信号量3.对信号量进行操作 三.一个现象 一.消息队列 1.原理 这种消息队列被称为system V标准。 可以使用ipcs -q来查询消息队…

分页符 分页

【插入】---【分页符】 目录和一级标题得新起一页

【React-Router】路由快速上手

1. 创建路由开发环境 # 使用CRA创建项目 npm create-react-app react-router-pro# 安装最新的ReactRouter包 npm i react-router-dom2. 快速开始 // index.jsimport React from react; import ReactDOM from react-dom/client; import ./index.css; import App from ./App; i…

QEMU Guest Agent本地提权漏洞处理(CVE-2023-0664)

一、漏洞描述 QEMU Guest Agent(qga)类似于vmware中的 vmtools,相关安全报告显示它的Windows版本安装程序存在本地提权高危漏洞(CVE-2023-0664),攻击者可利用该漏洞进行本地权限提升,获得SYSTE…

音视频5、libavformat-1

libavformat库,是FFmpeg中用于处理各种媒体容器格式(media container format)的库。它的两个最主要的功能是 : demuxing:解封装,将一个媒体文件分割为多个多媒体流 muxing:封装,将多个多媒体数据流写入到指定媒体容器格式的文件中 这两个过程所做的…

智能化学习打破资源障碍 成为英语学习新趋势

智能化学习是一种基于互联网和人工智能技术的学习行为,通过网络,学习者可以随时随地进行学习,真正打破了时间和空间的限制。与传统线下学习方式相比,智能化学习更加方便、资源更加丰富,使海量英语学习资源唾手可得,智能化学习正逐渐成为中国孩子习得英语的重要方式。 随着全球…

基于python和django旅游管理系统

基于python和django旅游管理系统 摘要 基于Python和Django的旅游管理系统是一个以现代化技术为基础的系统,旨在提升旅游行业的管理效率和服务水平。该系统以Django框架为核心,结合Python编程语言的灵活性和强大的生态系统,实现了多方面的功能…

vue3之echarts渐变柱状图

vue3之echarts渐变柱状图 效果&#xff1a; 核心代码&#xff1a; <template><div class"abnormal"><div class"chart" ref"chartsRef"></div></div> </template><script setup> import * as echa…

新手小白想做跨境电商,应该选第三方平台还是独立站?

近几年在疫情的影响下&#xff0c;电商特有的“免接触”模式迅速切中消费者的心理痛点&#xff0c;加上国内电商发展已经趋于平缓&#xff0c;很多线下店铺被迫关闭&#xff0c;这也使得越来越多的大卖和平台也不约而同布局跨境电商。而说到跨境电商&#xff0c;或许大家普遍想…

论文阅读:MedSegDiff: Medical Image Segmentation with Diffusion Probabilistic Model

论文标题&#xff1a; MedSegDiff: Medical Image Segmentation with Diffusion Probabilistic Model 翻译&#xff1a; MedSegDiff&#xff1a;基于扩散概率模型的医学图像分割 名词解释&#xff1a; 高频分量&#xff08;高频信号&#xff09;对应着图像变化剧烈的部分&…

视频剪辑达人分享:高效减片头时长并调整播放速度的技巧,提升视频品质

在视频剪辑的过程中&#xff0c;许多初学者经常会遇到一些问题&#xff0c;如片头过长、播放速度不适当等&#xff0c;这些问题不仅会影响观众的观看体验&#xff0c;还会对视频品质产生负面影响。在调整播放速度时&#xff0c;要根据视频内容来进行调整。一般来说&#xff0c;…

探索稳定扩散技术中的LoRA权重激活:从模型微调到动漫风格图像生成的全过程

多重LoRA权重激发稳定扩散 稳定扩散控制网络流水线步骤1&#xff1a;环境准备步骤2&#xff1a;模型转换步骤3&#xff1a;运行时流水线测试 启用稳定扩散的LoRA权重步骤4-1&#xff1a;通过pytorch_lora_weights.bin启用LoRA步骤4-2&#xff1a;通过safetensors类型的权重启用…

008 OpenCV matchTemplate 模板匹配

目录 一、环境 二、模板匹配算法原理 三、代码演示 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、模板匹配算法原理 cv.matchTemplate是OpenCV库中的一个函数&#xff0c;用于在图像中查找与模板匹配的特征。它的主要应用场景…

leetcode:645. 错误的集合(python3解法)

难度&#xff1a;简单 集合 s 包含从 1 到 n 的整数。不幸的是&#xff0c;因为数据错误&#xff0c;导致集合里面某一个数字复制了成了集合里面的另外一个数字的值&#xff0c;导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结…