Docker官方文档:https://docs.docker.com/

神马是Docker?

Docker可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。

开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署。

Docker通常用于如下场景:

  • web应用的自动化打包和发布;

  • 自动化测试和持续集成、发布;

  • 在服务型环境中部署和调整数据库或其他的后台应用;

  • 从头编译或者扩展现有的 OpenShiftCloud Foundry 平台来搭建自己的 PaaS 环境。

Docker与虚拟机的区别

与虚拟机相比,它以一种轻量级的方式实现了运行空间的隔离。

如果物理机是一幢住宅楼,虚拟机就是大楼中的一户户套房,而容器技术就是套房里的一个个隔断。

不难理解,Docker 作为一种隔断,它并不能基于一种内核(Linux)提供另一种内核(Windows)的虚拟化运行环境。

所以,基于 Linux 的 Docker 是不支持运行 Windows 应用的。

但是后来Windows也意识到了容器粒度的重要性,于2014年宣布与Docker合作,2017年10月正式发布Windows容器。

使用Docker for Windows 切换到 Windows Container 功能,之后的操作也是基于Docker客户端操作的。

安装Docker

网上搜索一下即可,很简单

Centos7为例

yum install -y yum-utils            # yum-config-manager需要用这个包
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #安装docker官方源
yum makecache
yum -y install docker-ce
systemctl start docker

镜像加速,使用国内源

sudo vim /etc/docker/daemon.json

{
 "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

systemctl restart docker

Docker镜像命令

docker search ubuntu    #查找镜像
docker pull ubuntu #拉取镜像(就是下载)
docker images   #查看Docker镜像
docker rmi -f id #删除镜像,不加ID全部删除

docker run -it -d --name ubuntu_wintrysec -p 8088:80 ubuntu #运行Docker镜像
#-d参数为后台运行,--name参数为自定义容器名,
#-p参数为指定端口映射、后者为容器的端口
#成功后台运行后会返回一个容器的id,只需要记住前两位即可

Docker容器命令

docker ps                #查看所有启动的容器(若查看所有的容器则添加-a参数即可)
docker inspect id #查看容器信息
docker stats id #查看Docker状态

docker exec -it id /bin/bash         #进入一个正在运行的容器的shell
cat /etc/issue #查看ubuntu版本
exit    #退出容器

docker stop id #停止容器运行
docker ps -a #查看所有的容器,包括已经关闭的
docker rm id #删除容器

打包docker

虽然制作了好了容器,但是只能在本机使用而不能在其他机器上使用,这时就可以打包容器

用-o输出,ls 查看本地文件,这样只需将该tar文件发给其他主机,解压就可以使用镜像了

docker commit id ubuntu_wintrysec:1.0docker save -o ubuntu_wintrysec.tar ubuntu_wintrysec:1.0

Dockerfile的使用(构建镜像)

Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等

用于从无到有的构建镜像

https://blog.csdn.net/wsscy2004/article/details/25878223

Docker compose(启动服务)

docker compose 是一个整合发布应用的利器(官方安装手册)

默认的模板文件是 docker-compose.yml

其中定义的每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile,除非有registry)来自动构建

不想部署私有registry又不想让Dockerfile存在的话,可以使用官方的Docker Hub, 然后使用daocloud加速访问。

Centos7 安装docker-compose

首先确认已经安装好了python和pip(Centos7 安装python3.8和pip)

pip install docker-compose -i https://pypi.mirrors.ustc.edu.cn/simple/

简单的docker-compose.yml示例讲解

Dockerfile的情况下,不用buildversion: '3'
services:
discuz: #web服务,dz论坛应用
  image: vulhub/discuz:7.2 #镜像,这个镜像是放到dockerhub上的
  depends_on: #依赖db服务
     - db
  ports:
     - "8080:80" #端口映射,前边的是要访问的端口,后边的是容器中服务的端口
db:
  image: mysql:5.5
  environment: #可选环境配置,mysql:5.5镜像有这个配置
    MYSQL_ROOT_PASSWORD: root
    MYSQL_DATABASE: discuz
#这个是在没有Dockerfile的情况下,不用build

扩展阅读

Docker-compose.yml 配置文件编写详解

Docker registry的安装与启动

部署私有Docker Registry

Docker不完全使用指南的更多相关文章

  1. Docker技术快速精通指南

    doctor专业网站:http://www.dockerinfo.net/ Docker中文文档 csdn 的docker专栏: Docker技术快速精通指南

  2. CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  3. Docker生产环境实践指南

    技术栈:1. 构建系统2. 镜像仓库3. 宿主机管理4. 配置管理5. 部署6. 编排7. 日志8. 监控 镜像:1. 如果用户像往常一样运行包安装命令,这些永远也用不上的缓存包文件将会永远地成为镜像 ...

  4. Azure支持docker简介以及使用指南

    Docker 是一个开源的项目,主要的特点是能将应用程序包装在一个 LXC (Linux Container) 容器中,当这些应用被包装进容器后,部署.迁移都变得更为简单.与传统的虚拟化技术相比,虚拟 ...

  5. Docker Compose 入门使用指南

    Compose is a tool for defining and running multi-container Docker applications. With Compose, you us ...

  6. 架构师分享 Docker 新手入门完全指南

    来源:架构师小秘圈 ID:seexmq Docker 最初 dotCloud 公司内部的一个业余项目 Docker 基于 Go 语言 Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案 Do ...

  7. Ubuntu+docker+jenkins安装详细指南

    最近项目上开始实行自动化测试,避免不了与jenkins等持续集成工具打交道,今天就给大家分享一下有关jenkins的简单安装和使用 1,准备环境 (1)ubuntu系统 (2)docker (3)je ...

  8. Docker 代理脱坑指南

    Docker 代理配置 由于公司 Lab 服务器无法正常访问公网,想要下载一些外部依赖包需要配置公司的内部代理.Docker 也是同理,想要访问公网需要配置一定的代理. Docker 代理分为两种,一 ...

  9. 关于docker

    摘要: 最近很多阿里内部的同学和客户私信来咨询如何学习 Docker 技术.为此,我们列了一个路线图供大家学习Docker和阿里云容器服务.这个列表包含了一些社区的优秀资料和我们的原创文章.我们会随着 ...

随机推荐

  1. MyEclipse运行项目出现 The user operation is waiting for "Building workspace" to complete

    如图所示 解决方式 1.选择菜单栏的“Project”,然后把菜单栏中“Build Automatically”前面的对钩去掉. 2.当你修改或添加代码后,选择菜单栏的“Project”,然后选择菜单 ...

  2. Java数据库小项目01--实现用户登录注册

    先实现数据库和数据表,检测正常后再做其他的 CREATE TABLE users( username ) NOT NULL, PASSWORD ) NOT NULL); INSERT INTO use ...

  3. The Reset Method of Te Philips VTR 5210

    Pull down and hold the ON/OFF buttun, Then press the play button

  4. ACM-ICPC 2018 南京赛区网络预赛Sum,线性筛处理积性函数

    SUM 题意:f(n)是n可以拆成多少组n=a*b,a和b都是不包含平方因子的方案数目,对于a!=b,n=a*b和n=b*a算两种方案,求∑i=1nf(i) 首先我们可以知道,n=1时f(1)=1, ...

  5. Cogs 1688. [ZJOI2008]树的统计Count(树链剖分+线段树||LCT)

    [ZJOI2008]树的统计Count ★★★ 输入文件:bzoj_1036.in 输出文件:bzoj_1036.out 简单对比 时间限制:5 s 内存限制:162 MB [题目描述] 一棵树上有n ...

  6. 【csp模拟赛2】黑莲花--数据结构+数论

    没有什么能够阻挡,你对被阿的向往.天天 AK 的生涯,你的心了无牵挂. 虐过大佬的比赛,也曾装弱装逼.当你低头的瞬间,才发现旁边的人. 把你的四肢抬起来,使劲地往门上撞.盛开着永不凋零,黑莲花. —— ...

  7. isPrototypeOf,instanceof, hasOwnProperty,in的作用与区别

    isPrototypeOf 作用:检测一个对象是否是另一个对象的原型.或者说一个对象是否被包含在另一个对象的原型链中 function Fn(name){ this.name=name; } var ...

  8. Sublime Text 使用笔记(大全呀,菜鸟必看)

    下载和安装 Sublime Text2是一款开源的软件,不需要注册即可使用(虽然没有注册会有弹窗,但是基本不影响使用). 下载地址:http://www.sublimetext.com ,请自行根据系 ...

  9. Mac 下python3 [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 解决方法

    原文:http://blog.yuccn.net/archives/625.html python3.6下使用urllib 的request进行url 请求时候,如果请求的是https,请求可以会出现 ...

  10. C#_实现Hello Word!

    1:代码如下: using System;//using关键字可以引用MIcrosoft.NET框架类库中的现有资源. //System命名空间提供了对构建应用程序所需的所有系统功能的访问,包括本例中 ...