what is Docker

Docker 是一个开源的应用容器引擎
换句话说就是运行的系统里的虚拟机,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
优点是容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker的应用场景

  1. Web 应用的自动化打包和发布。
  2. 自动化测试和持续集成、发布。
  3. 在服务型环境中部署和调整数据库或其他的后台应用。
  4. 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

Docker 的优点

  1. 快速,一致地交付您的应用程序
  2. 响应式部署和扩展
  3. 在同一硬件上运行更多工作负载

docker run hello-word

  1. 在centos安装docker,非干净的环境卸载docker

    1
    2
    3
    4
    5
    6
    7
    8
    sudo yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine
  2. 设置仓库,安装所需软件
    安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。并不稳定,参考更换yum源
    添加docker-ce的稳定镜像,
    安装最新版本的docker-ce docker-ce-cli

    1
    2
    3
    sudo yum install -y yum-utils  device-mapper-persistent-data  lvm2
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install docker-ce docker-ce-cli containerd.io
  3. 更换docker镜像源
    进入/etc/docker
    如有,则改写,若无则创建daemon.json,写入如下内容

    1
    2
    3
    {
    "registry-mirrors":["https://i5hfypef.mirror.aliyuncs.com"]
    }

完成后重载
关于systemctl,可以参考阮一峰Systemd

1
2
systemctl daemon-reload
systemctl docker reload
  1. 启动docker
1
2
sudo systemctl start docker
sudo docker run hello-world

第一次没找到,docker会自动找最新的image,然后安装,成功之后再次运行明令,就OK了

相关文章
评论
分享
  • docker-Dockerfile篇

    什么是DockerfileDockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明,相当于快速构建时候的脚本文件 获取images 首先明确需要获取的image版本,以目前LTS的nodejs版...

    docker-Dockerfile篇
  • 微任务宏任务

    微任务队列宏任务队列 javascript是单线程,多线程都是模拟出来的, script、setTimeOut、setInterval是宏任务 Promise,process.nextTick是微任务 setTimeOut是n毫...

    微任务宏任务
  • functionalTemplate

    在使用iview表格的时候,定制组件,需要用到renderHeader API,看了一下如何传入render函数,结果惊为天人 12345678910111213141516export default { name:...

    functionalTemplate
  • 罗盘时钟

    罗盘时钟不刷抖音但是最近也听说了有很火的罗盘时钟,废话不多说直接上代码 123456789101112131415161718192021222324252627282930313233343536373839404142434445...

    罗盘时钟
  • 如何判定我点了margin?

    这个世界上唯有两样东西能让我们的心灵感到深深的震撼:一是我们头顶上灿烂的星云,二是我们心中崇高的道德法则。 one - 康德 前言页面的绑定事件都是绑定在DOM元素上的,诸如此类 123document.getElementById(...

    如何判定我点了margin?
  • 自动微信读书

    前言最近在学习ReactNative,真机调试的时候安装的ADB调试工具,突发奇想,既然PC可以操控手机,是不是可以做一些懒得做的事情 流程 通过USB链接真机调试 执行wifi调试 123adb tcpip 5555adb co...

    自动微信读书
  • 初探electron

    什么是 electron使用html、css、javascipt、nodejs来编写跨平台的客户端程序,可以使windows、linux、macos 优点一次代码编写,多端打包 起步

    初探electron
  • 粘贴图片上传功能

    粘贴图片并上传最近在写博客的时候,纯MarkDown语法写,但是发现图片是个需求,需要经常截图并且写到MarkDown里面之前的做法是用QQ截图,然后另存为到本地桌面,然后再上传,返回URI地址,贴到博客编辑器里面最近发现有些页面支持...

    粘贴图片上传功能
  • 记一次sql性能优化

    有个小需求,在表里根据页码和页数查询,并排序,很简单,3秒就写出的sql 1select * from newslist order by id desc limit ${(currPage - 1) * pageSize&...

    记一次sql性能优化
  • 花式log

    各种控制台输出常见的控制台打印123456console.log() // 打印日志console.debug() // 打印调试console.error() // 打印错误console.info() // 打印信息...

    花式log