docker的安装以及基本操作

一.认识docker

Docker是一种用于构建、打包和运行应用程序的开源平台。它基于操作系统级虚拟化技术,可以将应用程序和其依赖的库、环境等资源打包到一个可移植的容器中,形成一个轻量级、独立的可执行单元。

开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

简单的理解,Docker类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装箱之间没有影响。也就是说,Docker平台就是一个软件集装箱化平台,这就意味着我们自己可以构建应用程序,将其依赖关系一起打包到一个容器中,然后这容器就很容易运送到其他的机器上进行运行,而且非常易于装载、复制、移除,非常适合软件弹性架构。 因此,就像船只、火车或卡车运输集装箱而不论其内部的货物一样,软件容器充当软件部署的标准单元,其中可以包含不同的代码和依赖项。 按照这种方式容器化软件,开发人员和 IT 专业人员只需进行极少修改或不修改,即可将其部署到不同的环境。

二.docker的基本概念

1. 容器(Container):


        Docker镜像是Docker容器的静态定义,它包含了容器运行所需的程序、库、资源、配置等文件。镜像的分层存储结构使得镜像可以被复用、定制,同时也使得镜像可以更好地管理和存储。容器是基于镜像运行的实体,它具有自己的独立的命名空间、网络配置、进程空间和用户ID空间,因此容器封装的应用比直接在宿主运行更加安全。容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。为了保证容器存储层的无状态化和高性能,应该使用数据卷或绑定宿主目录进行文件写入操作。数据卷的生存周期独立于容器,容器删除或重新运行后,数据不会丢失。

即:

容器是基于镜像创建的独立运行环境,它包含了应用程序及其所有依赖项,如所需的库、环境变量等。
容器在多个操作系统层面上实现了资源的隔离,使得应用程序可以在一个统一的环境中运行,并且不会相互干扰。
容器可以快速启动、停止和删除,这使得应用程序的部署和管理变得非常方便。


2. 镜像(Image):


        Docker镜像是一个特殊的文件系统,包含了操作系统完整的root文件系统,其体积往往很大。在设计时,Docker使用Union FS技术将其设计为分层存储的架构,每一层构建完就不会再发生改变。因此,在构建镜像时,需要小心,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。分层存储的特征使得镜像的复用和定制变得更容易。

即:

镜像是Docker容器的构建块,它包含了应用程序运行所需的一切内容。
镜像是只读的,它可以从底层文件系统和元数据中构建,这使得镜像具有可重复性和可分发性。
镜像可以通过Dockerfile文件定义和构建。Dockerfile是一个文本文件,其中包含了一组指令,用于指导Docker构建过程。
镜像具有层次结构,每个层代表了在构建过程中进行的一项更改。这种分层结构提供了高效的镜像分享和存储方式。


3. 仓库(Repository):


        Docker Registry是一个集中存储镜像文件的地方,类似于我们之前常用的代码仓库。它可以包含多个仓库,每个仓库可以包含多个标签,每个标签对应一个镜像。仓库名通常以两段式路径形式出现,前者表示多用户环境下的用户名,后者则是对应的软件名。仓库分为公开仓库和私有仓库两种形式,即Docker Registry公开服务和私有Docker Registry。

即:

仓库是用于存储和管理Docker镜像的地方。它类似于代码版本控制系统中的代码仓库。
公共仓库,如Docker Hub,是一个全球性的服务,提供了大量的公共镜像供用户获取和使用。
私有仓库通常由个人或组织在本地或云端搭建,用于存储和共享私有镜像。这种方式可以确保镜像的安全性和私密性。
仓库可以包含多个仓库镜像标签(Tag),每个标签代表一个特定版本的镜像。标签可以用于区分镜像的不同版本和配置。


3.1.Docker Registry 公开服务


        Docker Registry是一个开放给用户使用的Registry服务,允许用户免费上传、下载公开的镜像,并可能提供收费服务供用户管理私有镜像。最常使用的公开服务是Docker Hub,它是默认的Registry,拥有大量高质量的官方镜像。

        在国内访问Docker Hub可能会比较慢,因此国内的一些云服务商提供了针对Docker Hub的镜像服务(Registry Mirror),这些镜像服务被称为加速器,可以直接从国内的地址下载Docker Hub的镜像,比直接从Docker Hub下载速度会提高很多。

 

3.2.私有Docker Registry


        用户可以在本地搭建私有 Docker Registry,也可以使用官方提供的 Docker Registry 镜像作为私有 Registry 服务。

开源的 Docker Registry 镜像只提供了 Docker Registry API 的服务端实现,不包含图形界面、镜像维护、用户管理和访问控制等高级功能。在商业化版本 Docker Trusted Registry 中提供了这些高级功能。除了官方的 Docker Registry 和第三方软件实现的 Docker Registry API,还有一些第三

三.docker的安装与部署

1.使用yum源安装

 
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo systemctl start docker
 

2.二进制安装

到 https://download.docker.com/linux/static/stable/x86_64/ 页面下载自己需要版本的发布包。

[root@localhost data]# tar -xvf docker-18.03.1-ce.tgz

 配置启动脚本

[root@localhost ~]# vim /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.targe

这个安装不好的是没有命令补齐Tab键,补全命令那个网站找不到了

 3.配置镜像加速

  国内从Docker Hub拉取镜像有时会遇到困难,此时可以配置镜像加速器。

(1)从2017年6月9日起,Docker 官方提供了在中国的加速器,以解决墙的问题。不用注册,直接使用 加速器地址:https://registry.docker-cn.com 即可。 

(2)中国科技大学的镜像加速器:中科大的加速器不用注册,直接使用地址 https://docker.mirrors.us tc.edu.cn/ 配置加速器即可。进一步的信息可以访问:http://mirrors.ustc.edu.cn/help/dockerhub.ht ml?highlight=docker

(3)阿里云加速器:注册阿里云开发账户(免费的)后,访问这个链接就可以看到加速器地址: https://c r.console.aliyun.com/#/accelerator

(4)DaoCloud 加速器:注册 DaoCloud 账户(支持微信登录),然后访问: https://www.daocloud.io/ mirror#accelerator-doc
 

[root@localhost ~]# vim /etc/docker/daemon.json

 四.使用

1.下载系统镜像(Ubuntu、 centos)

搜索官方镜像

 拉取镜像命令:docker pull

docker pull ubuntu:20.04
docker pull centos:7

2.基于下载的镜像创建两个容器 (容器名一个为自己名字全拼,一个为首名字字母)

docker run -d --name wangcong ubuntu:20.04 
docker run -it --name WC centos:7 /bin/bash

3.容器的启动、 停止及重启操作

启动容器:docker start  容器名

停止容器:docker stop/kill 容器名

重启容器: docker restart 容器名

 
4.怎么查看正在运行的容器和所有容器?

 docker ps

要查看所有已经创建的容器,可以使用以下命令:

docker ps -a

 另外,还可以使用 `docker container ls` 命令来列出所有容器,无论它们是否正在运行。该命令会列出所有容器的 ID、名称、镜像名称、创建时间、状态等信息。

5.怎么退出容器: 两种方法分别实现?

方法一:使用 `exit` 命令或`ctrl+D`这种办法会退出·容器并停止容器

方法二: 使用 `Ctrl+Q+P` 命令

这个命令会退出容器但是不会停止容器,也就是容器还会在后台继续运

6.怎么连接到运行的容器?

docker exec -it 容器名 /bin/bash

7.查看容器或镜像的内部信息?

docker inspect 容器名


8.如何查看所有镜像?

docker images

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

主流深度学习框架及神经网络模型汇总

目录 主流深度学习框架及神经网络模型汇总 一、人工智能的研究领域和分支 二、主流深度学习框架​编辑 1.TensorFlow 2.PyTorch 3.PaddlePaddle 4.Keras 5.Caffe/Caffe2 6.MXNet 7.Theano 8.Torch 9.CNTK 10.ONNX 三、深度学习移动端推理框架 1.TensorRT 2.TF-…

前端将file文件传给后台,后台将文件传给前台(包含上传下载)

前端将file文件传给后台,后台将文件传给前台(包含上传下载) 在开发过程中,经常会遇见对文件的处理。 例如:在上传、下载文件时,需要在前端选完文件传到后台传到服务器;或者文件从后台&#xf…

Mybatis缓存

缓存(cache)的作用是为了减去数据库的压力,提高查询性能。缓存实现的原理 是从数据库中查询出来的对象在使用完后不要销毁,而是存储在内存(缓存)中, 当再次需要获取该对象时,直接从内存&#xf…

Docker部署项目

相关系列文章: 1、DockerHarbor私有仓库快速搭建 2、DockerJenkinsHarbor 3、Docker安装Mysql、Redis、nginx、nacos等环境 1、jenkins构建前端并上传服务器 在这篇文章中(DockerJenkinsHarbor)未完成前端的远程部署,这里对前端vue工程进行编译打包并上…

学习ts(十)装饰器

定义 装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,访问符,属性或参数上,是一种在不改变原类和使用继承的情况下,动态的扩展对象功能。 装饰器使用expression形式,其中expression必须…

【C++】—— C++11新特性之 “右值引用和移动语义”

前言: 本期,我们将要的介绍有关 C右值引用 的相关知识。对于本期知识内容,大家是必须要能够掌握的,在面试中是属于重点考察对象。 目录 (一)左值引用和右值引用 1、什么是左值?什么是左值引用…

政务大厅人员睡岗离岗玩手机识别算法

人员睡岗离岗玩手机识别算法通过pythonyolo系列网络框架算法模型,人员睡岗离岗玩手机识别算法利用图像识别和行为分析,识别出睡岗、离岗和玩手机等不符合规定的行为,并发出告警信号以提醒相关人员。Python是一种由Guido van Rossum开发的通用…

Linux————LNMT搭建

一、原理 搭建一个基于Linux系统的Web服务器,使用Nginx作为反向代理服务器,Tomcat作为应用服务器,MySQL作为数据库服务器。 Linux操作系统 基于Linux的操作系统 Nginx Nginx是一款高性能的Web服务器和反向代理服务器&#xff0…

基于Java+SpringBoot+Vue前后端分离图书管理系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

svn软连接和文件忽略

软连接 1)TortoiseSVN->Properties->New->Externals->New 2)填入软连接信息 Local path: 写下软连接后的文件夹的名字 URL: 想要软连接的牡蛎->TortoiseSVN->Repo-browser 复制下填入 文件忽略 以空格隔开就行

C++:list使用以及模拟实现

list使用以及模拟实现 list介绍list常用接口1.构造2.迭代器3.容量4.访问数据5.增删查改6.迭代器失效 list模拟实现1.迭代器的实现2.完整代码 list介绍 list是一个类模板&#xff0c;加<类型>实例化才是具体的类。list是可以在任意位置进行插入和删除的序列式容器。list的…

软考:中级软件设计师:网络类型与拓扑结构,网络规划与设计,ip地址与子网划分,特殊含义的IP地址

软考&#xff1a;中级软件设计师:网络类型与拓扑结构 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准…

LAMP 配置与应用

LAMP 架构的组成 LAM(M)P&#xff1a; L&#xff1a;linux A&#xff1a;apache (httpd) M&#xff1a;mysql, mariadb P&#xff1a;php, perl, python apache的功能&#xff1a; 第一&#xff1a;处理http的请求、构建响应报文等自身服务&#xff1b; 第二&#xff1a…

C语言之数组题

目录 1.使用函数实现数组操作 2.冒泡排序 3.三子棋 4.【一维数组】交换数组 5.扫雷 6.概念辨析tips 我又来了&#xff0c;今天是数组题&#xff0c;本人还在补军训真的热&#xff01;&#x1f197; 1.使用函数实现数组操作 2.冒泡排序 3.三子棋 4.【一维数组】交换数组 …

vscode使用anaconda自带的python环境在终端运行时报错

目录 具体报错内容官方翻译报错讲人话解决方法 具体报错内容 CommandNotFoundError: Your shell has not been properly configured to use conda activate. If your shell is Bash or a Bourne variant, enable conda for the current user with$ echo ". E:\Anaconda/e…

Nginx配置文件详解

Nginx配置文件详解 1、Nginx配置文件1.1主配置文件详解1.2子配置文件 2、全局配置部分2.1修改启动的工作进程数&#xff08;worker process) 优化2.2cpu与worker process绑定2.3 PID 路径修改2.4 修改工作进程的优先级2.5调试工作进程打开的文件的个数2.6关闭master-worker工作…

docker使用安装教程

docker使用安装教程 一、docker安装及下载二、使用教程2.1 镜像2.2 容器2.3 docker安装Redis 一、docker安装及下载 一、安装 安装执行命令&#xff1a;curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 二、启停常用命令 启动docker,执行命令&#xf…

自动化运维工具——ansible安装及模块介绍

目录 一、ansible——自动化运维工具 1.1 Ansible 自动运维工具特点 1.2 Ansible 运维工具原理 二、安装ansible 三、ansible命令模块 3.1 command模块 3.2 shell模块 3.3 cron模块 3.4 user模块 3.5 group 模块 3.6 copy模块 3.7 file模块 3.8 ping模…

videojs 实现自定义组件(视频画质/清晰度切换) React

前言 最近使用videojs作为视频处理第三方库&#xff0c;用来对接m3u8视频类型。这里总结一下自定义组件遇到的问题及实现&#xff0c;目前看了许多文章也不全&#xff0c;官方文档写的也不是很详细&#xff0c;自己摸索了一段时间陆陆续续完成了&#xff0c;这是实现后的效果.…

Cpp学习——编译链接

目录 ​编辑 一&#xff0c;两种环境 二&#xff0c;编译环境下四个部分的 1.预处理 2.编译 3.汇编 4.链接 三&#xff0c;执行环境 一&#xff0c;两种环境 在程序运行时会有两种环境。第一种便是编译环境&#xff0c;第二种则是执行环境。如下图&#xff1a; 在程序运…