Docker容器:docker基础

这篇具有很好参考价值的文章主要介绍了Docker容器:docker基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、docker容器简介

1、什么是容器

2、容器的优点

3、什么是docker容器

4、docker的logo及设计宗旨

5、docker与虚拟机对比

6、docker容器2个重要技术

7、docker三大核心概念

二、docker的安装及管理

1、安装docker

2、配置docker加速器

3、docker镜像相关基础命令

①搜索镜像

②拉取镜像

③查看镜像

④查看镜像详细信息

⑤ 本地镜像添加新标签

⑥查看docker信息

⑦删除docker镜像

⑧容器导出镜像存储

⑨导入镜像到容器

4、docker容器相关基础命令

①查看docker容器进程

②创建docker容器 

③管理docker容器

5、docker run的运行过程

6、docker 容器7个的生命周期

7、docker容器导出导入

8、 删除容器

三、docker网络

1、host模式

2、container模式

3、none模式

4、bridge模式 

5、自定义网络


一、docker容器简介

1、什么是容器

容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。
虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。

2、容器的优点

①灵活:即使是最复杂的应用也可以集装箱化。
②轻量级:容器利用并共享主机内核。
③可互换:可以即时部署更新和升级。
④便携式:可以在本地构建,部署到云,并在任何地方运行。
⑤可扩展:可以增加并自动分发容器副本。
⑥可堆叠:可以垂直和即时堆叠服务。

3、什么是docker容器

Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。
Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。
Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。

4、docker的logo及设计宗旨

Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱。
鲸鱼可看作为宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。Docker的设计宗旨:Build,Ship and Run Any App,Anywhere,
即通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。

5、docker与虚拟机对比

Docker与虚拟机的区别
特性 启动速度 计算能力损耗 性能 系统支持量(单机) 隔离性
Docker容器 秒级 几乎无 接近原生 上千个 资源隔离/限制
虚拟机 分钟级 损耗 50%左右 弱于原生 几十个 完全隔离

6、docker容器2个重要技术

docker本质就是宿主机的一个进程,docker是通过namespace实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g)

namespace的六项隔离
namespace 系统调用参数 隔离内容
UTS CLONE_NEWUTS 主机名与域名
IPC CLONE_NEWWIPC 信号量、消息队列和共享内存
PID CLONE_NEWPID 进程编号
NETWORK CLONE_NEWNET 网络设备、网络栈、端口等
MOUNT CLONE_NEWNS 挂载点(文件系统)
USER CLONE_NEWUSER 用户和用户组(3.8以后的内核才支持)

7、docker三大核心概念

①镜像:包含了各种环境或者服务的一个模板

②容器(container)--对象:镜像运行起来之后的一个实例即为容器,可以看做简易版的linux环境

③仓库:保存镜像的地方,分为私有库和公共库最大的公有库是docker公司提供的地址为:hub.docker.com

docker的三大核心以及日志等内容默认都存在/var/lib/docker下

二、docker的安装及管理

1、安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2
#安装docker的依赖包,yum-utils:提供了 yum-config-manager 工具。
#device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
#evice mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#yum源配置为阿里云镜像
yum install -y docker-ce  docker-ce-cli
#安装docker(ce表示社区版,若需安装指定版本则--后跟版本)  

2、配置docker加速器

①打开阿里云官网 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台官网进行登陆。 docker容器,docker,容器,运维

②登陆后打开控制台

docker容器,docker,容器,运维

③点击左侧菜单栏,搜索框输入容器镜像服务docker容器,docker,容器,运维

④ 选择镜像工具---镜像加速器--复制命令配置即可配置完毕重新加载daemon然后重启docker。

docker容器,docker,容器,运维

3、docker镜像相关基础命令

①搜索镜像

格式:docker search 关键字   

作用:搜索关键字的相关镜像内容docker容器,docker,容器,运维

②拉取镜像

格式:docker pull 镜像:[版本号]   

作用:拉取镜像,版本号可选,不填写默认为拉取最新镜像docker容器,docker,容器,运维

③查看镜像

命令:docker images 

作用:查看所有镜像文件 docker容器,docker,容器,运维

④查看镜像详细信息

格式:docker inspect 镜像唯一id号

作用:可以查看到镜像的ip信息等docker容器,docker,容器,运维

⑤ 本地镜像添加新标签

格式:docker tag 名称:[标签]  名称:[新标签]

作用:用于本地镜像添加新的标签

docker容器,docker,容器,运维

⑥查看docker信息

命令:docker version 

作用:查看docker版本信息

命令:docker  info 

作用:查看docker详细信息

⑦删除docker镜像

格式:docker rmi    仓库名:标签 /镜像唯一id号

作用:删除镜像

docker容器,docker,容器,运维

⑧容器导出镜像存储

格式:docker save  -o    保存目录    导出的镜像

作用:将docker容器中的镜像导出保存到系统中 

docker容器,docker,容器,运维

⑨导入镜像到容器

格式: docker load   -i  本地存储镜像位置 

            docker load  <本地存储镜像位置

作用:将镜像导入docker容器中docker容器,docker,容器,运维

4、docker容器相关基础命令

①查看docker容器进程

命令:docker  ps  [选项]

        -a 选项显示所有状态容器

作用:显示up的进程,加-a表示显示所有状态容器docker容器,docker,容器,运维

②创建docker容器 

格式:docker create [选项] 镜像

常用选项: -i:让容器开启标准输入

                   -t:让 Docker 分配一个伪终端 tty -it :合起来实现和容器交互的作用,运行一个交互式会话 shell

 作用:创建容器docker容器,docker,容器,运维

③管理docker容器

格式:docker start/stop   容器唯一id/容器名称

作用:开启或关闭容器docker容器,docker,容器,运维

5、docker run的运行过程

创建并启动docker容器  

格式:docker  run  [选项]      镜像名/镜像唯一id     /bin/bash

选项:-d 选项让 Docker 容器以守护形式在后台运行,并且容器所运行的程序不能结束

          -it :合起来实现和容器交互的作用,运行一个交互式会话 shell

          --name:指定创建的容器的名称

作用:相当于先create容器然后再start容器并持久保持开启,不能单独使用docker  run 不加任何选项,docker 容器是一个与其中运行的 shell 命令共存亡的终端,命令运行容器运行, 命令结束容器退出

运行过程:

(1)检查本地是否存在指定的镜像。当镜像不存在时,会从公有仓库下载;

(2)利用镜像创建并启动一个容器;

(3)分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;

(4)从宿主主机配置的网桥接口中桥接一个虚拟机接口到容器中;

(5)分配一个地址池中的 IP 地址给容器;

(6)执行用户指定的应用程序,执行完毕后容器被终止运行。

6、docker 容器7个的生命周期

(1)create:已创建还未运行的容器

(2)running:正在运行中的容器

(3)restarting:容器正在重启中

(4)removing:容器正在迁移中

(5)paused:容器已暂停的状态

(6)exited:停止容器运行

(7)dead:死亡,主要是操作系统出现异常或断点导致

暂停和停止状态的区别:

paused 命令挂起指定的容器中的所有进程为暂停,

stop:表示杀掉正在运行的docker容器进程,默认是10s后

7、docker容器导出导入

容器从一台机器迁移到另一台机器。在迁移过程中,可以使用docker export命令将已经创建号的容器导出为文件,无论这个容器是处于运行状态还是停止状态均可导出。

导出格式:docker export 容器id/容器名称 >文件夹名

导入格式:cat 文件| docker import - centos8:test #自定义容器名

docker容器,docker,容器,运维

8、 删除容器

格式:docker [选项]  容器id/名称

[选项]:-f强制删除

作用:删除容器,若容器在运行中建议先停止再删除docker容器,docker,容器,运维

三、docker网络

1、host模式

docker中的容器使用宿主机的ip地址但是端口号不同,Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。
一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、iptable规则等都与其他的Network Namespace隔离。 一个Docker容器一般会分配一个独立的Network Namespace。 但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace, 而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡、配置自己的IP等,而是使用宿主机的IP和端口。

配置:创建容器时添加使用 --net=host 指定容器为host模式。

docker容器,docker,容器,运维

2、container模式

container模式则是docker容器中所有的容器共享一个Network Namespace而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过lo网卡设备通信。 

配置:创建容器时添加使用 --net=container指定容器为host模式。

docker容器,docker,容器,运维

3、none模式

none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。 也就是说,这个Docker容器没有网卡、IP、路由等信息。这种网络模式下容器只有lo回环网络,没有其他网卡。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。

配置:创建容器时添加使用 --net=none指定容器为host模式。

4、bridge模式 

bridge模式为docker的默认模式,安装docker时就已经产出了一个docerk0的虚拟网卡,bridge模式容器使用独立network Namespace,并连接到docker0虚拟网卡。通过docker0网桥以及iptables nat表配置与宿主机通信,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的 Docker 容器连接到一个虚拟网桥上。

docker容器,docker,容器,运维

docker容器,docker,容器,运维

5、自定义网络

#直接使用bridge模式,是无法支持指定IP运行docker的,例如执行以下命令就会报错
docker run -itd --name test3 --network bridge --ip 172.17.0.10 centos:7 /bin/bash

//创建自定义网络
#可以先自定义网络,再使用指定IP运行docker
docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name"="docker1"  mynetwork
#docker1 为执行 ifconfig -a 命令时,显示的网卡名,如果不使用 --opt 参数指定此名称,那你在使用 ifconfig -a 命令查看网络信息时,看到的是类似 br-110eb56a0b22 这样的名字,这显然不怎么好记。
#mynetwork 为执行 docker network list 命令时,显示的bridge网络模式名称。
docker run -itd --name test4 --net mynetwork --ip 172.18.0.10 centos:7 /bin/bash文章来源地址https://www.toymoban.com/news/detail-781286.html

到了这里,关于Docker容器:docker基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小白到运维工程师自学之路 第六十二集 (docker持久化与数据卷容器)

    一、概述 Docker持久化是指将容器中的数据持久保存在主机上,以便在容器重新启动或迁移时不丢失数据。由于Docker容器是临时和可变的,它们的文件系统默认是易失的,这意味着容器中的任何更改或创建的文件都只存在于此容器的生命周期内。但是,在许多场景中,我们希望

    2024年02月14日
    浏览(37)
  • Docker容器:docker基础

    目录 一、docker容器简介 1、什么是容器 2、容器的优点 3、什么是docker容器 4、docker的logo及设计宗旨 5、docker与虚拟机对比 6、docker容器2个重要技术 7、docker三大核心概念 二、docker的安装及管理 1、安装docker 2、配置docker加速器 3、docker镜像相关基础命令 ①搜索镜像 ②拉取镜像

    2024年02月02日
    浏览(49)
  • Docker容器:docker基础及安装

    (1)Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。 (2)是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。 (3)Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。 2.1 docker虚拟

    2024年02月05日
    浏览(51)
  • 【Docker基础】Docker容器的基本使用

    2023年07月08日
    浏览(56)
  • 【Docker系列】容器基础、Docker镜像管理

    个人名片: 对人间的热爱与歌颂,可抵岁月冗长🌞 Github👨🏻‍💻:念舒_C.ying CSDN主页✏️:念舒_C.ying 个人博客🌏 :念舒_C.ying 2.1 Docker镜像查找 命令查找 docker官网查找 2.2 Docker镜像管理 拉取MySQL镜像 查看本地镜像 镜像加速(阿里云) Daocloud镜像站加速 镜像删除 2.3 容器

    2024年01月25日
    浏览(42)
  • Docker容器------镜像,容器基础命令

    目录  一,docker镜像  1,查看docker版本  2,获取镜像 2.1查看下载到本地的所有镜像   2.2 获取镜像信息 2.3 添加镜像标签(上传镜像到仓库)   2.4 镜像导出  2.5 镜像导入  2.6 ,删除镜像  2.7 上传镜像 ​编辑 二,docker 容器操作 1,查看容器 2,容器创建----docker create  

    2024年02月05日
    浏览(49)
  • 学无止境·运维高阶⑥Docker基础内容

    #启动 [root@node3 docker]# docker start Li #停止正在运行 [root@node3 docker]# docker stop Li #重启 [root@node3 docker]# docker restart Li 用-it创建容器后,不停止容器退出:Ctrl+Q+P 用-it创建容器后,退出并停止容器:Ctrl+D 或 exit

    2024年02月11日
    浏览(43)
  • Docker 容器基础操作

    容器(container)是Docker镜像的运行实例,类似于可执行文件与进程的关系,Docker是容器引擎,相当于系统平台。 容器的生命周期

    2024年02月15日
    浏览(32)
  • Docker容器基础

    Docker官网:https://docs.docker.com/ Docker的github地址:https://github.com/moby/moby Dockerhub官网: https://registry.hub.docker.com Docker官方registry镜像加速:https://dashboard.daocloud.io/mirror Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者可以打包

    2024年02月10日
    浏览(33)
  • Jenkins基础篇--Docker容器部署

    容器部署Jenkins的优势: 1、安全。容器之间的进程是相互隔离的,单独容器环境稳定,宿主机中环境变量的修改,不容易影响容器的运行结果。 2、更轻松地部署和扩展。容器可方便迁移,一次交付,多次利用,容器可将打包好的jenkins环境迁移到其他设备中。 3、容器启动迅

    2024年02月13日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包