Docker 是什么

  • 一个应用打包、分发、部署的工具
  • 一个轻量的虚拟机,只虚拟软件需要的运行环境

为什么要使用 Docker?

  • 跨平台,你可以在各种系统里安装docker运行你的服务
  • 性能好,只虚拟软件所需运行环境,最大化减少没用的配置
  • 自动化,一个命令就可以部署运行你的项目
  • 无差异部署

流程简介

  • 在 Windows or Mac 上开发、测试
  • 打包为 Docker 镜像
  • 在docker环境里,一个命令跑起来你的项目

重要名词简介

  • 镜像:就像一个软件包,复制粘贴到其他电脑,一样可以安装使用
  • 容器:一个镜像可以安装N次,每次都可以生成不一样的容器,我们可以用name进行区分,它就像是软件安装以后,软件运行的环境,彼此隔离,我们称它为容器

安装

  • 官方文档
  • 手把手教你进行MAC安装Docker
  • 手把手教你进行Linux安装Docker
  • 手把手教你进行Windows安装Docker

注意重点(如果你不设置这些的话,服务器重启或者docker 服务重启以后,你的项目会无法自动启动哦~)

设置docker开机启动

查看已启动的服务
systemctl list-units -lype=service查看是否设置开机启动
systemctl list-unit-files | grep enable设置开机启动
systemctl enable docker.service关闭开机启动
systemctl disable docker.service

设置docker容器自动启动

启动时加restart-always
docker run -tid -name 容器id -p 端口号 -restart-always -v 挂载已经启动的项目.使用update更新:
docker update --restart = always 容器id

restart可选项

  • no 不自动重启容器(这个是默认value)
  • on-failure 容器发生error而退出(容器退出状态不为0)重启容器
  • unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
  • always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器

镜像加速

方案一:阿里云:搜索容器服务-镜像加速器

方案二:DaoCloud 道客加速器

配置 Docker 镜像站,该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。更多详情请访问文档。

方案三:腾讯加速器

https://mirror.ccs.tencentyun.com

如果遇到无法下载的镜像,可以参考我的文章:

  • Coolify系列01- 从0到1超详细手把手教你上手Heroku 和 Netlify 的开源替代方案
  • Docker使用阿里云拉取配置源也无法拉取的镜像-github镜像镜像gcr.io

关于使用:举个栗子

我们执行下面的这个命令,就可以跑起来redis了

docker run -d -p 6379:6379 --name redis redis:latest
  • run docker 运行软件
  • -d 后台运行,如果不用这个,关掉命令行就会停止运行
  • -p 6379:6379把容器内部的端口暴露到宿主机 宿主机:容器内
  • –name redis 命名
  • redis:latest下载最新版本的redis镜像

有任何不懂的命令,可以在这里搜索,点击这里

制作自己的镜像

编写 Dockerfile

  • 参考我的这篇文章:手把手教你写Dockerfile以及测试

Build镜像:命令参考文档

docker build -t test:v1 .

运行镜像:命令参考文档

docker run -p 8080:8080 --name test-hello test:v1

-p 映射容器内端口到宿主机
–name 容器名字
-d 后台运行

常用命令

docker ps 查看当前运行中的容器
docker images 查看镜像列表
docker rm container-id 删除指定 id 的容器
docker stop/start container-id 停止/启动指定 id 的容器
docker rmi image-id 删除指定 id 的镜像
docker volume ls 查看 volume 列表
docker network ls 查看网络列表

目录挂载

为什么使用目录挂载?

  • 修改代码想要立即生效,不想再build run
  • 容器里的数据不可以丢失

如何挂载:文档参考

关于挂载,举个栗子:

  • 挂载后,容器里的代码就会替换为你挂载的代码
  • bind mount 方式用绝对路径 -v D:/code:/app
  • volume 方式,只需要一个名字 -v db-data:/app
    示例:
docker run -p 8080:8080 --name test-hello -v D:/code:/app -d test:v1

容器通信:文档参考

创建一个名为xiaojin的网络:

docker network create xiaojin

运行 Redis 在 xiaojin 网络中,别名redis

docker run -d --name redis --network xiaojin --network-alias redis redis:latest

容器中的代码想要访问redis,就可以这么写

  • 步骤一:使用网络别名
  • 步骤二:运行项目,使用同一个网络
docker run -p 8080:8080 --name test -v D:/test:/app --network xiaojin -d test:v1

Docker-Compose

为什么使用Docker-Compose?

  • 想要一个容器运行多个项目,比如前后端项目,或者其他依赖项目
  • 懒得设置网络什么的,太麻烦,直接全运行到同一个容器

怎么使用

  • 安装文档
  • 运行docker-compose检查是否安装成功
  • 编写脚本docker-compose.yml,将项目多个服务集合在一起-参考文档

关于yml文件,举个栗子

version: "1.0"services:app:build: ./ports:- 8080:8080volumes:- ./:/appenvironment:- TZ=Asia/Shanghairedis:image: redis:5.0.13volumes:- redis:/dataenvironment:- TZ=Asia/Shanghaivolumes:redis:

运行服务

在docker-compose.yml 文件所在目录,执行:

docker-compose up -d

docker-compose常用命令

  • 查看运行状态:docker-compose ps
  • 停止运行:docker-compose stop
  • 重启:docker-compose restart
  • 重启单个服务:docker-compose restart service-name
  • 进入容器命令行:docker-compose exec service-name sh
  • 查看容器运行log:docker-compose logs [service-name]

连接到远程Docker引擎

为什么要远程访问Docker?

  • 可以使用http协议,获取json格式数据,很方便
  • 使用代码控制镜像,so easy

怎么配置才可以远程访问呢?

  • 参考我的这篇文章:保姆级手把手教你如何使用HTTP远程连接Docker

今天就写到这里啦~

  • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

写给前端:一文了解Docker,快速掌握重点相关推荐

  1. 【总结】1056- 如何编写前端设计文档?

    在笔者所在的前端研发流程中, [技术调研及方案设计]属于连接[需求阶段]和[开发阶段]的中间节点.在需求详评(三审)后了, 需求的功能和交互已经基本确定, 而在实际进入开发之前, 还有一些 待确定的技 ...

  2. Docker 快速入门(一文上手 Docker)

    通过本篇文章,就可以达到在 Window 或 Linux 上手 Docker(有点长,可以根据目录选择你需要的内容看) 文章图片没有带过来,涉及的图片较多,就不一一挪了,大家可以直接看我 GitCha ...

  3. 司徒正美写给前端开发者的算法书(文末抽奖送书)

    "每天学习一点点算法",相信很多被算法"折磨"过的人都曾立下这样的Flag,并向算法发出一轮又一轮的进攻. 这也是司徒正美老师博客园首页上的一句话.在那上面,他 ...

  4. Docker快速入门,看这个就够了

    Docker快速入门 一.Docker介绍 1.1 Docker背景 1.2 Docker概念 1.3 Docker的优势 1.4 Docker的三个基本概念 二.Docker的安装和使用 2.1 安 ...

  5. 私活利器,docker快速部署node.js应用

    http://cnodejs.org/topic/53f494d9bbdaa79d519c9a4a 最近研究了几天docker的快速部署,感觉很有新意,非常轻量级和方便,打算在公司推广一下,解放运维, ...

  6. docker快速入门_Docker标签快速入门

    docker快速入门 by Shubheksha 通过Shubheksha Docker标签快速入门 (A quick introduction to Docker tags) If you've w ...

  7. Docker快速搭建JIRA缺陷管理平台

    Docker快速搭建JIRA缺陷管理平台 快速开始 version: '3' services:atlassian-jira:image: cptactionhank/atlassian-jirapo ...

  8. Docker快速入门

    Docker快速入门 ​ 学习资料: [狂神说Java]Docker最新超详细版教程通俗易懂_哔哩哔哩_bilibili 文章目录 Docker快速入门 1.Docker概述 1.1 Docker 为 ...

  9. Docker快速入门总结笔记

    文章目录 1. Docker概述 2. 虚拟化技术和容器化技术 3. Docker的基本组成 4. Docker的安装 5. Docker的卸载 6. 配置阿里云镜像加速 8. Docker容器运行流 ...

最新文章

  1. Docker部署Elasticsearch集群
  2. VSCode 插件开发实例(WebView):微信读书 ^-^边撸代码边看小说^-^
  3. java责任链设计模式_Java中的责任链设计模式
  4. oracle 动态sql列转行_SQL Server中动态列转行
  5. string对象中去掉标点符号
  6. 洛谷 P4009 汽车加油行驶问题 题解
  7. h5禁止页面长按操作_HTML5 对于手机页面长按会粘贴复制的禁用 (解决方案)
  8. 在ASP.NET Web API中返回错误的最佳实践
  9. android MVP连接服务器,Android之MVP模式实现登陆和网络数据加载
  10. Java集合源码分析(二):哈希表
  11. docker-redis配置文件修改
  12. Nutanix的进化
  13. 速卖通AliExpress绑定连连跨境支付收款教程!
  14. 七星彩长奖表图_新版够力七星彩奖表
  15. 基于turn.js库电子书在线阅读器源码
  16. this和super的区别:
  17. split()和split(‘ ‘)的区别
  18. 不错的电子书搜索引擎
  19. 华三交换机升级的ipe文件_H3C设备升级
  20. [python教程入门学习]初学 Python 必备官方教程 之1. 开胃菜

热门文章

  1. SQL RDBMS 概念
  2. 艾灵网络完成战略轮融资
  3. Python实现换脸
  4. 【嵌入式】FS2410移植U-Boot-1.1.6
  5. Tableau之数据可视化大屏/智慧大屏(成都大熊猫繁育研究基地,模拟旅游相关数据)@灵魂走风的江湖
  6. Skype拟1.21亿美元收买Qik 客岁净亏700万美元
  7. C#中Newtonsoft.Json(Json.NET)的使用和处理json格式数据
  8. 现金+股票再平衡策略的测试 - 针对恒指
  9. MetaHuman结合第三人称角色,增加走路跑步动画
  10. location 拦截所有_【安卓】X浏览器——去除网站的广告(超强的拦截功能)