Docker入门-前端不止是前端-SegmentFault思否
程序员文章站
2022-04-01 08:25:31
docker简介
docker 是使用 go 语言 进行开发实现,基于 linux 内核的 cgroup,namespace,以及 aufs 类的 union fs 等技术,对...
docker简介
docker 是使用 go 语言 进行开发实现,基于 linux 内核的 cgroup,namespace,以及 aufs 类的 union fs 等技术,对进程进行封装隔离,属于 操作层面的虚拟化技术。 隔离的进程独立于宿主和其它的隔离的进程。 docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等 优点是没有进行硬件虚拟。因此容器要比传统更为轻便。docker的优势
高效的利用系统资源 快速的启动时间 一致的运行环境 持续交付和部署:对开发和运维(devops)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。使用 docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过 dockerfile 来进行镜像构建,并结合 持续集成(continuous integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合 持续部署(continuous delivery/deployment) 系统进行自动部署。
docker 确保了执行环境的一致性,使得应用的迁移更加容易 docker 使用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变得非常简单。社区健壮,一堆开源项目团队维护一批高质量的官方景象。对比图
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘使用 | mb | gb |
性能 | 接近原生 | 较弱 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
相关基本概念
docker 包括三个基本概念
镜像(image)容器(container)
容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 id 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。仓库(repository)
一个 docker registry 中可以包含多个仓库(repository);每个仓库可以包含多个标签(tag);每个标签对应一个镜像。三个概念包括docker的生命周期
安装(centos)
卸载旧版本$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine使用 yum 安装
$sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2国内网络问题,强烈建议使用国内源
$ sudo yum-config-manager \ --add-repo \ https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo # 官方源 $ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo安装 docker ce
sudo yum makecache fast sudo yum install docker-ce使用脚本自动安装
$ curl -fssl get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror aliyun启动 docker ce
$ sudo systemctl enable docker $ sudo systemctl start docker
建立 docker 用户组
建立 docker 组:sudo groupadd docker将当前用户加入 docker 组:
sudo usermod -ag docker $user测试docker是否安装正确
$ docker run hello-world unable to find image 'hello-world:latest' locally latest: pulling from library/hello-world d1725b59e92d: pull complete digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788 status: downloaded newer image for hello-world:latest hello from docker! this message shows that your installation appears to be working correctly. to generate this message, docker took the following steps: 1. the docker client contacted the docker daemon. 2. the docker daemon pulled the "hello-world" image from the docker hub. (amd64) 3. the docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. the docker daemon streamed that output to the docker client, which sent it to your terminal. to try something more ambitious, you can run an ubuntu container with: $ docker run -it ubuntu bash share images, automate workflows, and more with a free docker id: https://hub.docker.com/ for more examples and ideas, visit: https://docs.docker.com/get-started/
镜像加速器
ubuntu 14.04、debian 7 wheezy 配置docker_opts="--registry-mirror=https://registry.docker-cn.com"重新启动服务。
$ sudo service docker restartubuntu 16.04+、debian 8+、centos 7 在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
{ "registry-mirrors": [ "https://registry.docker-cn.com" ] }重新启动服务。
$ sudo systemctl daemon-reload $ sudo systemctl restart docker
添加内核参数
centos 使用 docker ce 看到下面的这些警告信息:warning: bridge-nf-call-iptables is disabled warning: bridge-nf-call-ip6tables is disabled
解决方法:内核配置参数以启用这些功能。
sudo tee -a /etc/sysctl.conf <<-eof net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 eof
然后重新加载sysctl.conf
sudo sysctl -p
上一篇: 天空中飘来五个字,欢迎来吃饭
下一篇: Linux--磁盘检查简单介绍
推荐阅读
-
2019前端工程师自检清单与思考-考拉阅读前端团队-SegmentFault思否
-
【前端刷题笔记02】字节跳动2019面试题-一只想做全栈的猫-SegmentFault思否
-
JavaScript:回流(重排)与重绘-前端开发随笔-SegmentFault思否
-
Javascript中函数作为对象的魅力-佛系前端-SegmentFault思否
-
【node不完全指西】EventEmitter(事件发布/订阅模式)解析-考拉阅读前端团队-SegmentFault思否
-
前端性能优化不完全手册【已更新至React】-个人文章-SegmentFault思否
-
[打包优化]从0到1搭建element后台框架优化篇-前端小东西-SegmentFault思否
-
积梦前端的路由方案ruled-router-题叶-SegmentFault思否
-
js面试之14种设计模式(6)-前端小而全的知识归纳-SegmentFault思否
-
daily-question(前端每日一题)-小皮咖-SegmentFault思否