Docker复习笔记

Centos7安装Docker

Docker官网:www.docker.com

Docker官网仓库:hub.docker.com

Docker文档是比较详细的

安装相关依赖

yum -y install gcc gcc-c++

yum install -y yum-utils

设置docker镜像仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo  这个是官网的

下面这个是设置成阿里云镜像(我这里安装的是上面这个官网的)

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum软件包索引(这个我没有执行)

yum makecache fast

安装Dcoker引擎

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Docker常用命令

启动Docker引擎

systemctl start docker    启动docker

systemctl is-enabled docker  查看Docker是否自动启动

systemctl enable docker    设置Docker自动启动

systemctl restart docker   重启docker

systemctl stop docker 停止docker

systemctl disable docker  取消自动启动

systemctl status docker 查看docker状态

docker version   查看版本

docker info   查看概要

docker --help  帮助文档

docker 具体命令 --help  查看具体命令的帮助文档

Docker的HelloWorld

docker run hello-world  

卸载Docker引擎

停止docker引擎

systemctl stop docker


yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

删除存储镜像、容器和其他相关数据

rm -rf /var/lib/docker

删除Docker引擎相关数据

rm -rf /var/lib/containerd

阿里云镜像加速器设置

可以查看阿里云

可以使用上面的命令  也可以用vim直接创建并编辑

vim /etc/docker/daemon.json

让系统重新加载配置

systemctl daemon-reload

重启docker

systemctl restart docker

镜像和容器相关命令

docker images 列出本地所有镜像

docker search xxxx 远程仓库查看某个镜像

docker search --limit 5 redis 查看redis镜像排名前5个

docker pull xxx  下载某个镜像

docker pull centos:加版本号    :加版本号可以不加默认:latest 最新版

docker pull redis:6.0.8 下载指定版本镜像

docker pull ubuntu  下载最新版本ubuntu

docker images -a 查看历史所有镜像

docker images -q 或者 docker images -aq  docker images -qa 三个一个意思  列出所有镜像ID

docker system df 查看镜像/容器/数据卷所占的空间

docker rmi 镜像名:版本/ID  删除某个镜像默认:latest最新版本

docker rmi -f 镜像名/ID     强制删除某个镜像默认:latest最新版本

docker rmi -f 镜像名/ID 镜像名/ID 镜像名/ID    强制删除多个

docker rmi -f $(docker images -qa)    强制删除所有镜像

面试题:什么是虚悬镜像 镜像的Repository和TAG 都是none的就是虚悬镜像 建议删除 有时docker出了某些问题会出现

运行容器相关命令

镜像是模板,容器好比一个个实例

docker pull ubuntu

此时不能再像hello-world那样直接 docker run ubuntu  它会直接退出

docker run -it --name myubuntu ubuntu   即使这样 默认也会带shell脚本

docker run -it --name myubuntu ubuntu /bin/bash 

docker run -it --name myubuntu2 ubuntu /bin/sh

docker run -it --name=myubuntu ubuntu /bin/bash 

docker run -it --name myubuntu ubuntu bash    四个命令都可以 -it表示启动伪终端交互 --name可以不指定,不指定就是系统分配  这样会直接进入容器终端

docker run -d --name myubuntu ubuntu   启动守护式容器  后台启动 但是这样会启动并直接停止容器  这里具体看情况   原因在于ubuntu内部没有执行什么应用,docker认为根本没用 就会自动关闭  但是对于比如说redis   tomcat等等这样  容器启动后 会在后台运行   docker认为容器在干活不会自动关闭

docker run -it --name mynginx nginx /bin/bash 交互启动注意  直接进入交互  但是exit后会关闭容器  因此建议后台启动 或者用Ctrl+p+q 退出 这样不会关闭容器

如果ctrl+p+q退出后用 docker exec -it mynginx /bin/bash 重新进入  则用exit不会关闭容器

docker run -d -p 8080:8080 --name mytomcat tomcat 因为tomcat在内部运行不会自动关闭

此时如果直接exit 会退出并关闭(停止运行中)容器

可以按住Ctrl+p+q 来退出  容器继续运行

进入容器

docker exec -it nginx1 /bin/bash

docker exec -it nginx1 /bin/sh

docker top 容器id/容器名字   查看容器内运行的进程

docker inspect 容器ID/容器名字   查看容器内部运行细节

docker logs 容器ID/容器名字    查看日志

docker start 容器id或者容器名   启动运行过的容器

docker restart 容器id或者容器名   重启容器

docker stop 容器id或者容器名     停止容器

docker kill 容器id或者容器名      强制停止容器

docker rm 容器id或者容器名   删除已停止的容器

docker rm -f 容器id或者容器名   强制删除容器(包括运行中)

docker rm xxx  xxx xxx可以删除多个容器

docker rm -f $(docker ps -aq)  强制删除所有停止和运行中的容器

docker rmi xxxx 删除镜像

docker rmi xxx xxx xxx

docker ps 列出所有运行的容器

docker ps -a 列出所有运行中和运行过的容器

docker ps -q 列出在运行的容器的id

两个进入容器的命令

docker attach 容器Id/容器名 直接进入容器启动命令终端,不会启动新进程,用exit会导致容器停止

docker exec -it 容器id/容器名 /bin/bash   容器中打开的的终端,可以启动新的进程,用exit不会导致容器停止    推荐使用docker exec -it 容器id/容器名 /bin/bash

从容器内拷贝文件到宿主机

docker cp 容器id/容器名字:容器内路径  目的宿主机路径   (在宿主机操作,无论容器有没有运行都可以复制)

例如

docker cp mycentos1:/a.txt /a.txt
docker cp mycentos1:/a.txt /c.txt

导出整个镜像为tar归档文件到宿主机

该容器是否在运行中没有关系

在宿主机执行

docker export 容器ID/容器名字  >  新的名字.tar

docker export 容器ID/容器名字  >  /usr/local/develop/新的名字.tar

导入tar归档文件为镜像

cat /usr/local/develop/xxxx.tar | docker import - 新的镜像名字:版本号                  版本号可以不写

例如

cat /usr/local/develop/xxxx.tar | docker import - xxxxx:1.1

镜像提交到本地

下载的镜像里面可能没有某些命令工具,或者并不是你期望想要的,简单讲你可以自己添加功能保存到本地镜像

例如:我们将一个ubuntu镜像添加一个功能,提交到本地镜像

apt-get update

apt-get -y install vim

现在就可以使用了

保存好a.txt文件之后退出容器 ctrl+p+q(退出让容器继续运行)    exit退出且容器停止运行   

我们想把有vim功能的这个ubuntu镜像提交到本地  

在宿主机

docker commit -m="提交的描述信息" -a="作者" 容器名或者ID 创建镜像的名字:版本号

docker commit -m="add vim" -a="hrui" myubuntu ubuntuvim:v1
 

本地镜像发布到阿里云

先创建命名空间,再创建镜像仓库

基本就是照着上面抄

docker tag ubuntuvim:v1(可以是id) xxxxxx/test:v1

docker push xxxxxx/hrui/test:v1

拉取也一样  跟着抄

镜像推送到私有仓库

下载镜像 

docker pull registry

运行私有库Registry相当于本地有个私有的Docker hub(镜像仓库)

docker run -d -p 5000:5000 -v /usr/local/develop/registry:/tmp/registry --privileged=true --name myregistry registry

-d:后台启动

-p 5000:5000 宿主机5000端口对应容器5000端口

-v /usr/local/develop/registry:/tmp/registry  容器卷绑定   如果不写 默认仓库被创建在容器的/var/lib/registry目录下  建议自行用容器卷映射

--privileged=true  权限给与容器相当于宿主机全部权限

此时进入容器docker exec -it myregistry /bin/bash不可用   因为容器缩小了  很多找不到

docker exec -it myregistry /bin/sh  这种在绝大多数时候是可用的   

后台启动用docker exec -it myregistry /bin/sh进去 可以使用exit退出和CTRL+P+Q退出  都不会停止容器

这样私服镜像仓库就搭建完成了

可以用

curl -XGET http://IP地址:5000/v2/_catalog 

私服默认不接受http请求

vim /etc/docker/daemon.json

 "insecure-registries": ["IP地址:5000"]

重启docker引擎

systemctl restart docker

重启镜像仓库容器

docker start myregistry

可以用命令

docker tag 镜像id/或镜像名:版本号 ip地址:5000/镜像名:版本号   进行推送

docker tag centos localhost:5000/mycentos:v1
docker push localhost:5000/mycentos:v1 推送

docker pull localhost:5000/mycentos:v1   拉取

关于设置密码   另外查

容器卷相关

docker run -it --privileged=true -v /usr/local/develop/ubuntu:/tmp/docker_data --name=u1 ubuntu

注意这里用 -it启动 原因是用-d后台启动的话,docker任务ubuntu内部没有可以执行的东西,自动会关闭,  这和redis tomcat等有区别   redis tomcat等启动后内部有任务在执行

-v /usr/local/develop/ubuntu:/tmp/docker_data 这样宿主机和容器内部就相关联

宿主机

宿主机对应目录做了什么文件操作  相应的容器内对应目录也会同步

docker inspect 容器ID/容器名字     可以看详情

docker run -it --privileged=true -v /usr/local/develop/ubuntu:/tmp/docker_data --name=u1 ubuntu这种写法其实

docker run -it --privileged=true -v /usr/local/develop/ubuntu:/tmp/docker_data:rw --name=u1 ubuntu

这个:rw是默认加上去了  就是说容器可以对该/tmp/docker_data目录下进行读写操作

如果是docker run -it --privileged=true -v /usr/local/develop/ubuntu:/tmp/docker_data:ro --name=u1 ubuntu 这样的话就是容器对/tmp/docker_data只有读操作没有写操作

限制的是容器    宿主机不会被限制

容器卷的继承

比如说docker run -it --privileged=true -v /usr/local/develop/ubuntu:/tmp/docker_data --name=u1 ubuntu

现在又有个u2

docker run -it --privileged=true --volumes-from 父类 --name=u2 ubuntu

docker run -it --privileged=true --volumes-from u1 --name=u2 ubuntu

也就是说 u2复用了 u1的容器卷规则

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

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

相关文章

OpenCV开发笔记(七十五):相机标定矫正中使用remap重映射进行畸变矫正

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/136293833 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿…

网络设备和网络软件

文章目录 网络设备和网络软件网卡交换机交换机的三个主要功能交换机的工作原理第二层交换和第三层交换交换机的堆叠和级联 路由器路由器工作原理 网关网关的分类 无线接入点(AP)调制解调器网络软件 网络设备和网络软件 网卡 网络接口卡又称网络适配器,简称网卡。网…

【计算机网络】数据链路层--以太网/MTU/ARP/RARP协议

文章目录 一、以太网1.以太网帧格式2.MAC地址3.局域网的转发原理 二、MTU1.什么是MTU2.MTU对IP协议的影响3.MTU对UDP影响4.MTU对于TCP协议的影响 三、ARP协议1.ARP协议的作用2.ARP数据报的格式3.ARP协议的工作流程 一、以太网 “以太网” 不是一种具体的网络, 而是一种技术标准…

论文阅读:《High-Resolution Image Synthesis with Latent Diffusion Models》

High-Resolution Image Synthesis with Latent Diffusion Models 论文链接 代码链接 What’s the problem addressed in the paper?(这篇文章究竟讲了什么问题?比方说一个算法,它的 input 和 output 是什么?问题的条件是什么) 这篇文章提…

音视频剪辑|Windows|抽帧和合帧

什么是抽帧? FFmpeg 抽帧(Extracting frames)的作用是从视频文件中按需提取单张或多张静止图像(帧),并将它们保存为图片文件(如 JPEG、PNG 等格式)。这一功能在以下场合十分有用&am…

Python服务器监测测试策略与工具:确保应用的高可用性!

在构建高可用性的应用程序时,服务器监测测试是至关重要的一环。Python作为一种强大的编程语言,提供了丰富的工具和库来帮助我们进行服务器监测测试。本文将介绍一些关键的策略和工具,帮助你确保应用的高可用性。 1. 监测策略的制定&#xff…

Vue3 (unplugin-auto-import自动导入的使用)

安装 参考链接 npm i -D unplugin-auto-importvite.config.ts里面配置 import AutoImport from unplugin-auto-import/viteAutoImport({imports:[ vue,vue-router]})重新运行项目会生成一个auto-imports.d.ts的文件 /* eslint-disable */ /* prettier-ignore */ // ts-nochec…

YOLOv9尝鲜测试五分钟极简配置

pip安装python包: pip install yolov9pip在https://github.com/WongKinYiu/yolov9/tree/main中下载好权重文件yolov9-c.pt。 运行下面代码: import yolov9model yolov9.load("yolov9-c.pt", device"cpu") # load pretrained or c…

苹果手机动画演示动画PR样机模板视频素材 iPhone Mockup 7.0

适用于Premiere苹果手机动画演示PR样机模板视频素材 iPhone Mockup 7.0 产品信息: 5款支持alpha频道的动画智能手机。 轻松关闭屏幕上的背景、阴影和反射。 适用于Premiere Pro 2023 每个样机持续时间为13秒。 4K分辨率。 轻松更改颜色。 适用于图像或视频。 包括视…

m估计及其c++简单实现

文章目录 什么是m估计怎么求解m估计呢?Huber函数时的线性m估计 什么是m估计 自20世纪60年代稳健统计建立以来,在国内外众多学者的研究之下,诞生了一系列稳健统计重要理论和成果。其中最主要且广泛使用的稳健统计有以下三类: L-e…

Jmeter学习系列之八:控制器Controllers 的入门介绍

一、Controllers 简介 Jmeter有两种类型的控制器:Samplers(取样器)和Logical Controllers(逻辑控制器);它们驱动着测试的进行取样器:让jmeter发送请求到服务器以及接收服务器的响应数据逻辑控制…

@SpringBootApplication

目录 1. SpringBootApplication注解简介 2. 使用SpringBootApplication注解 3. 自定义SpringBootApplication注解 在Spring Boot中,SpringBootApplication是一个非常重要的注解,它用于开启自动配置,简化了我们的开发工作。本文将详细介绍这…

施华洛世奇 Swarovski EDI需求分析

施华洛世奇为全球首屈一指的光学器材及精确切割仿水晶制造商,为时尚服饰、首饰、灯饰、建筑及室内设计提供仿水晶元素。施华洛世奇有两个主要业务,分别负责制造及销售仿水晶元素,以及设计制造成品。 EDI传输协议 施华洛世奇 Swarovski 与合作…

自定义el-upload 上传文件

前言 最近在做一个文件上传的功能&#xff0c;后端接口写好了、发现前端上传文件的页面不会写……&#xff08;我很笨的&#xff09;然后我就找啊找发现element有个组件是<el-upload/>能直接上传文件。我就想直接用拿来改改改成自己想要的&#xff0c;可是就是这样我花了…

远程连接服务器及可视化方法(Win和Linux)

1.win端 1、通过SSH连接至服务器 在window下&#xff0c;打开命令行提示符&#xff08;快捷键winr后输入cmd回车&#xff09; 在命令行中输入 ssh 服务器上的用户名192.168.50.204回车并输入服务器上的用户登录密码 至此&#xff0c;已成功通过SSH连接至服务器。 2、通过…

Java根据excel模版导出Excel(easyexcel、poi)——含项目测试例子拿来即用

Java根据excel模版导出Excel&#xff08;easyexcel、poi&#xff09;——含项目测试例子拿来即用 1. 前言1.1 关于Excel的一般导出2.2 关于easyexcel的根据模版导出 2. 先看效果2.1 模版2.2 效果 3. 代码实现&#xff08;核心代码&#xff09;3.1 项目代码结构3.2 静态填充例子…

《高考》期刊杂志投稿邮箱知网教育类期刊发表

《高考》杂志是由国家新闻出版总署批准的正规教育类期刊。主要宣传高中新课程改革的专业性&#xff0c;是教育管理工作者、高中一线教师交流经验、探讨问题的重要平台&#xff0c;期刊突出政策性、针对性、指导性&#xff0c;是一本以教育科研成果展示为主&#xff0c;兼具教育…

x86使用GDT表实现系统调用--用户调用系统功能

系统调用 视频讲解可以看这一个课程 GDT表相关知识 原理 注册 允许应用调用操作系统的一些函数, 主要是由于权限, 需要在特区级下面运行一些操作 页表相关设置的时候有一个设置是PDE_U位, 这时候用户就可以访问这一段地址, 否则就是需要系统操作级来进行操作 实现系统调用…

xss-跨站脚本攻击漏洞

前备知识&#xff1a; Cookie和Session是Web开发中用于维持用户状态、跟踪用户会话的核心技术&#xff0c;它们的主要目的是在无状态的HTTP协议基础上实现有状态的用户交互。 **Cookie**&#xff1a; - Cookie是一种由服务器发送到客户端&#xff08;通常是用户的浏览器&#x…

OpenAI视频生成Sora技术简析

基本介绍 Sora是春节期间OpenAI发布的产品&#xff0c;主要是通过文字描述生成视频&#xff0c;通过大规模视频数据训练而成的生成模型&#xff0c;当前还没开放试用。官方发布的技术报告&#xff1a;https://openai.com/research/video-generation-models-as-world-simulators…