探索云原生技术之基石-Docker容器入门篇(1)

这篇具有很好参考价值的文章主要介绍了探索云原生技术之基石-Docker容器入门篇(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

探索云原生技术之基石-Docker容器入门(1)

本博文一共有6篇,如下

  • 探索云原生技术之基石-Docker容器入门篇(1)
  • 探索云原生技术之基石-Docker容器入门篇(2)
  • 探索云原生技术之基石-Docker容器入门篇(3)

等你对Docker有一定理解的时候可以看高级篇,不过不太建议。

  • 探索云原生技术之基石-Docker容器高级篇(1)
  • 探索云原生技术之基石-Docker容器高级篇(2)
  • 探索云原生技术之基石-Docker容器高级篇(3)-视情况而定

剧透:未来将出云原生技术-Kubernetes(k8s),此时的你可以对Docker进行统一管理、动态扩缩容等等。

看完之后你会对Docker有一定的理解,并能熟练的使用Docker进行容器化开发、以及Docker部署微服务、Docker网络等等。干起来!

什么是云原生

Pivotal公司的Matt Stine于2013年首次提出**云原生(Cloud-Native)**的概念;2015年,云原生刚推广时,Matt Stine在《迁移到云原生架构》一书中定义了符合云原生架构的几个特征:12因素、微服务、自敏捷架构、基于API协作、扛脆弱性;到了2017年,Matt Stine在接受InfoQ采访时又改了口风,将云原生架构归纳为模块化、可观察、可部署、可测试、可替换、可处理6特质;而Pivotal最新官网对云原生概括为4个要点:DevOps+持续交付+微服务+容器

总而言之,符合云原生架构的应用程序应该是:采用开源堆栈(K8S+Docker)进行容器化,基于微服务架构提高灵活性和可维护性,借助敏捷方法、DevOps支持持续迭代和运维自动化,利用云平台设施实现弹性伸缩、动态调度、优化资源利用率。

此处摘选自《知乎-华为云官方帐号》

探索云原生技术之基石-Docker容器入门篇(1)

什么是Docker

  • Docker 是一个开源的应用容器引擎,基于Go语言开发。
  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化
  • 容器是完全使用沙箱机制(容器实例相互隔离),容器性能开销极低(高性能)。

总而言之:

Docker是一个高性能的容器引擎;

可以把本地源代码、配置文件、依赖、环境通通打包成一个容器即可以到处运行;

使用Docker安装软件十分方便,而且安装的软件十分精简,方便扩展。

Docker三大基本概念

  • 镜像(image):相当于Java的类
  • 容器(container):相当于通过Java的类new出来的对象
  • 仓库(repository):类似代码仓库,是Docker集中存放镜像文件的场所

使用阿里云镜像安装Centos7

  • 1:http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/ 进入下载页面

  • 2:点击下面的File Name为CentOS-7-x86_64-DVD-2009.iso 链接即可

  • 3:通过VM虚拟机安装centos7。(这里省略了。)

如何安装Docker容器

  • 注意:这里我们全都是基于Centos7系统进行操作。
卸载Docker容器
  • 1:查看已安装的docker版本
[root@aubin ~]#  yum list installed |grep docker
输出结果:
containerd.io.x86_64                        1.4.4-3.1.el7              @docker-ce-stable
docker-ce-cli.x86_64                        1:20.10.6-3.el7            @docker-ce-stable
docker-scan-plugin.x86_64                   0.7.0-3.el7                @docker-ce-stable
  • 2:删除docker
yum -y remove containerd.io.x86_64
yum -y remove docker-ce-cli.x86_64 
yum -y remove docker-scan-plugin.x86_64
安装Docker容器
  • 1:设置 Docker 仓库
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 2:安装 Docker Engine-Community
sudo yum install docker-ce docker-ce-cli containerd.io
  • 3:检查是否安装好docker
[root@aubin ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.14
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        a224086
 Built:             Thu Mar 24 01:49:57 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true
  • 4:启动docker
sudo systemctl start docker

Docker接入阿里云镜像加速器

配置镜像加速器方法。

  • 准备工作:
  • 1:首先进入阿里云容器镜像服务 跳转阿里云容器镜像服务
  • 2:点击镜像工具下面的镜像加速器
  • 3:拿到你的加速器地址和下面第二步的registry-mirrors的值替换即可。

针对Docker客户端版本大于 1.10.0 的用户,可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
探索云原生技术之基石-Docker容器入门篇(1)

  • 第一步:
mkdir -p /etc/docker
  • 第二步:
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://u01jo9qv.mirror.aliyuncs.com"]
}
EOF
  • 第三步:
sudo systemctl daemon-reload
  • 第四步:
sudo systemctl restart docker

最后就接入阿里云容器镜像加速器成功啦。

如遇到拉取不了镜像的情况,可以试试这种方式

  • 这种方法会把上面镜像源全部覆盖掉,所以要谨慎。
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
sudo systemctl restart docker

Docker入门学习

Docker-helloworld
  • 1:搜索hello-world的镜像
docker search hello-world
  • 2:从docker上面拉取镜像到本地
docker pull hello-world:latest

这些命令含义后面会讲,现在先不讲

  • 3:运行docker镜像,生成docker容器实例
docker pull hello-world:latest
  • 4:输出结果(完成了)
Hello from Docker!
This message shows that your installation appears to be working correctly.

我们第一个docker程序完成啦!!!

查看docker状态
sudo systemctl status docker
  • active就是你当前docker的状态。
设置docker开机自动启动
sudo systemctl enable docker
查看docker版本
sudo docker version
docker帮助文档
docker --help
  • 如下:
Usage:  docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Options:
      --config string      Location of client config files (default "/root/.docker")
  -c, --context string     Name of the context to use to connect to the daemon (overrides
                           DOCKER_HOST env var and default context set with "docker context use")
  -D, --debug              Enable debug mode
  -H, --host list          Daemon socket(s) to connect to
  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default
                           "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

Management Commands:
  app*        Docker App (Docker Inc., v0.9.1-beta3)
  builder     Manage builds
  buildx*     Docker Buildx (Docker Inc., v0.8.1-docker)
  config      Manage Docker configs
  container   Manage containers
  context     Manage contexts
  image       Manage images
  manifest    Manage Docker image manifests and manifest lists
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  scan*       Docker Scan (Docker Inc., v0.17.0)
  secret      Manage Docker secrets
  service     Manage services
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      Manage Docker
  trust       Manage trust on Docker images
  volume      Manage volumes

Commands:
  attach      Attach local standard input, output, and error streams to a running container
  build       Build an image from a Dockerfile
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  events      Get real time events from the server
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  images      List images
  import      Import the contents from a tarball to create a filesystem image
  info        Display system-wide information
  inspect     Return low-level information on Docker objects
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        Fetch the logs of a container
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  search      Search the Docker Hub for images
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     Show the Docker version information
  wait        Block until one or more containers stop, then print their exit codes

Docker镜像命令

列出镜像
列出所有镜像
docker images
列出指定镜像
docker images hello-world
搜索镜像
搜索指定镜像名的所有镜像
  • 从Docker Hub中搜索镜像
  • 例如:我们搜索Ubuntu镜像
docker search ubuntu
搜索指定镜像名的镜像并指定展示条数
  • –limit 1:意思是只取搜索出来的镜像第一条
docker search --limit 1 ubuntu
拉取镜像
  • 1:比如我们要拉取Ubuntu的镜像,我们先搜索一下有没有这个镜像
docker search ubuntu --limit 1
  • 2:开始我们的重点内容:拉取镜像
docker pull ubuntu:latest
  • pull:拉取镜像
  • ubuntu:镜像名
  • latest:拉取该镜像在仓库的最新版本(其实相当于=docker pull ubuntu
    探索云原生技术之基石-Docker容器入门篇(1)说明我们拉取镜像成功了
docker system的使用
查看docker磁盘使用情况
sudo docker system df

探索云原生技术之基石-Docker容器入门篇(1)

删除本地镜像

例如我们要删除hello-world镜像

docker rmi -f hello-world
  • rmi:意思就是remove image(删除镜像)
  • -f:意思是force,强制删除。(如果要删除镜像最好加上这个,不然有时候会删除不了)
docker的虚悬镜像(dangling image)的查看和删除
什么是虚悬镜像?
  • 简而言之:虚悬镜像就是REPOSITORY(仓库名)和TAG(标签)都为**< none >镜像**。
  • 虚悬镜像可以随意删除。因为虚悬镜像没有价值。
虚悬镜像的查看
docker images -f dangling=true
虚悬镜像的删除
docker rmi $(docker images -q -f dangling=true)

Docker容器命令

生成Ubuntu交互式容器实例
docker run -it --name "youzhengjie" ubuntu /bin/bash
  • run:将指定镜像生成容器实例
  • -i:开启交互模式
  • -t:伪终端
  • -it:开启交互模式和伪终端(命令行),一般来说-it是成对出现的
  • –name:指定容器实例的NAMES(名称),不写则默认
  • /bin/bash:容器内执行/bin/bash命令
使用Ubuntu交互式容器
  • 执行完上面命令就进入了Ubuntu容器里面
  • 我们可以对它输入Linux命令,就像本机的centos7系统一样
  • 但是会出现以下这种情况。

探索云原生技术之基石-Docker容器入门篇(1)

  • 我们可以发现,vim命令无法在这个Ubuntu容器里面使用,那么这是为什么呢?
  • 因为我们docker安装的软件都是简化版(只留下运行时所必须要用到的),其余的东西都没有,这就是为什么docker里面的Ubuntu仅仅只有几十MB的占用内存的原因了
  • 但是别慌,docker中的Ubuntu虽然没有这些命令,但是可以通过我们后期去加装自己所需要的。(这个后面会说!)
列出容器
列出所有状态为Up的容器
docker ps
  • ps:指的是容器实例
列出所有容器(包括状态为Up、Exited)
docker ps -a

探索云原生技术之基石-Docker容器入门篇(1)

列出最近创建的一个容器
docker ps -l
列出所有容器的前n个
docker ps -a -n 1
  • -n:指定输出几个
只列出所有容器的id
docker ps -aq
退出容器的两种办法
  • 1:退出并且关闭容器(exit命令)
  • 2:只退出不关闭容器(ctrl p+q)

❤️💛🧡我们下一章见❤️💛🧡文章来源地址https://www.toymoban.com/news/detail-410975.html

到了这里,关于探索云原生技术之基石-Docker容器入门篇(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【深入探索Docker】:开启容器化时代的技术奇迹

    🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 🎉系列专栏:小智带你闲聊 🎉代码仓库:小智的代码仓库 在当今快节奏的软件开发和部署环境中,Docker作为一种容器化平台已经成为备受关注的技术奇迹。它革新了应用程序的交付方式,为开发人员和运维团

    2024年02月16日
    浏览(42)
  • 探索云原生容器编排技术:如Kubernetes如何为大数据处理和AI模型的自动化部署带来便利

    🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:云原生 ✨文章内容: 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗 Kubernetes是一个强大的容器编排和自动化部署工具,它为大数据处理和

    2024年02月10日
    浏览(59)
  • Docker:探索容器化技术,重塑云计算时代应用交付与管理

            在云计算时代,随着开发者逐步将应用迁移至云端以减轻硬件管理负担,软件配置与环境一致性问题日益凸显。Docker的横空出世,恰好为软件开发者带来了全新的解决方案,它革新了软件的打包、分发和管理方式,让开发人员能够运用先进的自动化运维工具和理念,

    2024年04月09日
    浏览(50)
  • 【云原生进阶之容器】第一章Docker核心技术1.1节——Docker综述

          《重识云原生系列》专题各章首节索引: 第一章——不谋全局不足以谋一域 第二章计算第1节——计算虚拟化技术总述 第三章云存储第1节——分布式云存储总述 第四章云网络第一节——云网络技术发展简述 第六章容器6.1.1节——容器综述    《云原生进阶之容器》

    2023年04月16日
    浏览(51)
  • 【云原生|Docker系列第4篇】Docker的容器的入门实践

    欢迎来到云原生系列的第4篇博客!在前面的两篇博客中,我们已经学习了Docker镜像的基本概念和入门实践。本篇博客将带您深入了解Docker容器,探索如何使用Docker容器来构建、运行和管理应用程序。无论您是新手还是有一定经验的开发者,通过本篇博客的实践指导,您将能够

    2024年02月17日
    浏览(50)
  • 入门Docker1: 容器技术的基础

    目录 服务器选型 虚拟机 基于主机(物理机或虚机)的多服务实例 基于容器的服务实例 Docker Docker三要素 Docker安装 Docker基本使用 基本操作 仓库+镜像 容器 在选择服务器操作系统时, Windows 附带了许多您需要付费的功能。 Linux 是开放源代码,可让用户免费使用。 对比 Linux 是开

    2024年01月16日
    浏览(45)
  • Docker入门指南: 创新的容器化技术

    Docker,一种创新的容器化技术,其主要目标是实现\\\"一次开发,到处运行\\\"。通过使用Docker,开发者可以在标准化的环境中进行工作,确保应用运行的一致性。 Docker是一个能够把开发的应用程序与它们所需要的环境进行打包,形成一个独立的、可移植的容器(Container)。然后,开

    2024年03月11日
    浏览(59)
  • Docker基础入门:从0开始学习容器化技术

    💖The Begin💖点点关注,收藏不迷路💖 Docker起源于2013年,由Docker公司(前身为dotCloud公司)创造和推广。它是一个开源的容器化平台,旨在简化应用程序的部署和管理。 在过去,应用程序的部署和运行环境往往存在着依赖关系和配置差异,这导致了许多问题,例如运行环境

    2024年02月12日
    浏览(35)
  • 【探索 Kubernetes|容器基础进阶篇 系列 4】理解现代云原生时代的引擎

    【云原生|探索 Kubernetes-1】容器的本质是进程 【云原生|探索 Kubernetes-2】容器 Linux Cgroups 限制 【云原生|探索 Kubernetes 系列 3】深入理解容器进程的文件系统 大家好,我是秋意零。 😈 CSDN作者主页 😎 博客主页 👿 简介 👻 普通本科生在读 在校期间参与众多计算机相关比赛,

    2024年02月08日
    浏览(48)
  • 云原生技术中的容器技术有哪些?

    在现今的安全行业中云原生安全技术中的容器安全技术有哪些呢,很多用户都不知道具体的含义以及到底容器技术中含有哪些内容,现在接下来一起跟着小编来了解下吧。 1、云原生的含义 ​ 云原生,云的意思就是云端,云端服务器相对本地服务服务器而言,通俗理解就是租

    2024年02月04日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包