docker容器技术

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

什么是docker

Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 版本开始,则进一步演进为使用 runC 和 containerd。

简单来说就是,用golang语言开发的一项基于linux的lxc技术的容器管理软件

docker结构

docker容器技术

Docker本身架构
docker容器技术

发展历史

物理机->虚拟机->虚拟机容器技术(LXC,linux container)->docker为代表的容器管理技术。

linux本身是支持lxc的,用于资源隔离(基于namespace + cgroup)

相比虚拟机,容器更加轻量级

docker容器技术

容器

linux本身是支持lxc的,用于资源隔离(基于namespace + cgroup) 容器和其他传统的环境相比
docker容器技术

容器的作用

运行镜像,可以直接多外提供服务

  1. 隔离进程,隔离资源
  2. 限制资源
  3. 直接和硬件对接,无虚拟机格外的消耗
相关概念
1. 镜像

打包了代码和运行环境的包,是静态文件,不能直接对外提供服务

2. 容器
3. 仓库
  1. 公有仓-docker registry
  2. 私有仓(企业)-harbor
docker使用
1. 创建一个容器运行一个镜像

docker run xxx[nginx,mysql] [-d]

它表示如下

  1. 下载镜像,如果不存在的话
  2. 初始化容器,分配隔离资源,如访问ip等
2. 如何进入docker下的某个容器

docker exec [-ti] docker-case sh

3. 如何删除容器

docker rm -f [container name]
或者
docker rm [conatiner id]

4. 宿主机如何访问容器

docker run --name xxxx -d -p [宿主机port]:[容器port] image-name

比如:

docker run --name my-ubuntu-nginx -d -p 8080:80 asx-nginx:ubunt

让后执行curl localhost:容器端口就好了,可以通过公网访问了

5. 拉镜像

docker pull image@tag
比如
docker pull ubuntu@latest

5. 构建对象

docker build [.](当前路径)[-t] image-name:tage [-f] dockerfile-name

dockerfile-name是一些列docker可识别的脚本文件,比如

docker build . -t asx-nginx:ubunt -f Dockerfile

镜像的相关操作

镜像的操作和流程图如下
docker容器技术

相关命令
1. 删除镜像

docker rmi [image-name]

1. 删除镜像

docker rmi [image-name]

2. 导出镜像到文件
docker save -o file-name.file_type image@tag

比如
docker save -o nginx.tar nginx:latest

3. 从文件中导入镜像
docker load -i file-name.file_type

比如docker load -i nginx-ubuntu.tar

仓库的相关操作

仓库分为本地仓库和公共仓库,通常是使用公共仓库,除非建立自己的仓库

1. 建立私有仓
docker run -d -p 5000:5000 --restart always --name registry registry:2
2. 推送image
  1. tag image 的仓库地址为本地仓
 docker tag ubuntu localhost:5000/ubuntu
  1. push tag后的image
docker push localhost:5000/ubuntu
3. 下载image
docker pull localhost:5000/ubuntu
4. 容器数据持久化
  1. 挂机主机目录
docker run --name xxx -d -v /var/log:/var/log nginx:alpine
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456  -d -v  /opt/mysql/:/var/lib/mysql mysql:5.7
  1. 使用valomue卷
docker  volume ls 
docker  volume create vol-name
docker run --name xxx -d -v vol-name:/var/log:vol-name/var/log nginx:alpine

访问case: curl -x http://[localhost|public-ip]:port/v2/ubuntu/tags/list 访问

5. 查看私有仓的images
容器和宿主机的交互
  1. 文件容器->宿主机
docker  cp[operate] file container-name/path

case

docker cp /tmp/test.txt nginx:/tmp

2.容器->宿主机

docker cp container-name/filepath  server/path

case文章来源地址https://www.toymoban.com/news/detail-456770.html

docker cp nginx:/tmp/file.txt ./tmp

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

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

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

相关文章

  • 容器化技术-Docker

    一、引言 1.1 什么是Docker(重要 - 部署)? Docker 是一个开源的应用 容器 引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙

    2024年02月04日
    浏览(30)
  • docker容器技术

    什么是docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于

    2024年02月06日
    浏览(33)
  • 容器技术(Docker)

    容器技术的核心就是通过对资源的 限制 和 隔离 把进程运行在一个沙盒中。并且这个沙盒可以被打包成容器镜像(Image),移植到另一台机器上可以直接运行,不需要任何的多余配置。其中docker是容器技术的事实标准。 使用容器部署有什么优势? 容器具有强一致性,由同一

    2024年02月10日
    浏览(42)
  • Docker容器技术详解(四)

    本文章将介绍docker-compose技术,如果想要了解docker前置内容,可以查看以下两篇文章. Docker容器技术详解(一) Docker容器技术详解(二) Docker容器技术详解(三) 注意,要想使用docker-compose命令的话需要在有docker-compose.yml文件的目录才能使用docker-compose命令 启动docker-compose.yml文件 查看

    2024年02月08日
    浏览(40)
  • 容器技术—docker stack

    在之前的几篇文章中,我们介绍了Docker Compose,它是用来进行一个完整的应用程序相互依赖的多个容器的编排的,但是缺点是不能在分布式多机器上使用;我们也介绍了Docker swarm,它构建了docker集群,并且可以通过docker service在不同集群节点上运行容器服务,但是缺点是不能同

    2024年02月05日
    浏览(38)
  • 什么是docker(docker客户端、镜像、容器、仓库)

    Docker 是一个开源的容器化平台,它可以让开发者打包应用程序及其依赖项成为一个轻量级、可移植的容器,然后在任何环境中运行。Docker 容器将应用程序及其依赖项打包到一个标准化单元中,包括代码、运行时环境、系统工具、系统库等,确保应用程序在不同的环境中具有

    2024年04月10日
    浏览(41)
  • Docker容器与虚拟化技术:Docker架构、镜像操作

    目录 一、理论 1.Doker概述 2.Docker核心概念 3.Docker安装 4.Docker的镜像管理命令 二、实验 1.Docker安装 2.查看Docker信息 3.Docker的镜像管理命令 三、问题 1.如何注册Docker账号  2.如何设置Docker公共存储库 四、总结 (1) IT架构 裸金属 → 虚拟机 → 容器→ 函数化、代码化 云计算涌现出很

    2024年02月10日
    浏览(50)
  • Docker容器与虚拟化技术:Docker架构、镜像管理

    目录 一、理论 1.Doker概述 2.Docker核心概念 3.Docker安装 4.Docker的镜像管理命令 二、实验 1.Docker安装 2.查看Docker信息 3.Docker的镜像管理命令 三、问题 1.如何注册Docker账号  2.如何设置Docker公共存储库 四、总结 (1) IT架构 裸金属 → 虚拟机 → 容器→ 函数化、代码化 云计算涌现出很

    2024年02月13日
    浏览(45)
  • Docker容器技术之镜像制作

    上篇文章说到过,作为用户是不需要制作镜像的,因为几乎所有常用的数据局库、应用软件、中间件在Docker Hub 里面可以找到,但是如果到了万不得已的时候我们还是要自己制作镜像,比如给自己编写的软件制作镜像。 制作镜像有两种方法: 1.docker commit命令 2.编写Dockerfile利

    2024年02月05日
    浏览(47)
  • Docker容器技术|最强王者篇

    🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计算机系列(火速更新中) 💭 格言:种一棵树最好的时间是十年前,其次是现在 🏡动动小手,点个关注不迷路,感

    2024年02月06日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包