Docker使用Dockerfile来实现对现有镜像的修改来创建新的镜像, 那docker-compose则完成镜像的自动部署, 可以实现多个容器同时部署 Dockerfile可以让用户管理一个单独的应用容器;而Compose则运行用户在一个模板中定义一组相关联的容器(被成为一个project项目), 例如一个web服务器加上后端的数据库容器等 安装最新版本 sudo curl -L "https://github.com/docker/compose/releases/download/1.2…
前言 在之前使用Docker的过程中,一直是用 Docker run 命令单独启动container后再加入Overlay网络的方式实现部署工作的. 这种方式看似直接,但是随着服务所包含的container的个数越来越多(docker 命令)也就越来越多,由此带来许多重复工作... 在官网上看到了通过 docker-compose 可以执行container的编排,尤其是compose files -- V3版本,加入的许多功能可以方便我们将服务中的contain部署在单独的docker hos…
一.什么是Portainer? Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台操作.Swarm集群和服务等集中管理和操作.登录用户管理和控制等功能.功能十分全面,基本能满足中小型单位对容器管理的全部需求. 二.下载Portainer镜像 docker pull portainer/portainer 三.运行Portainer Portainer运行方式有以下两种方式…
除了网络访问外,Docker还提供了两个很方便的功能来满足服务访问的基本需求:一个是允许映射容器内应用的服务端口到本地宿主主机;另一个是互联机制实现多个容器间通过容器名来快速访问. 1.端口映射实现访问容器 (1)从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的. 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-P或-p参数来指定端口映射.当使用-P(大写的)标记时,Docker会随机映射一个49000~49900的端…
1 引言 在前面博文中,我们介绍了镜像.如果说镜像犹如面向对象中的类,本节要说的容器就是由类实例化出来的对象了,有了类才可以创建容器. 先从拉取一个官方提供的ubuntu最新镜像: $ docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu Digest: sha256:f08638ec7ddc90065187e7eabdfac3c96e5ff0f6b2f1762cf31a4f49b5300…
本文收录在容器技术学习系列文章总目录 1.了解Docker Registry 1.1 介绍 registry 用于保存docker 镜像,包括镜像的层次结构和元数据. 启动容器时,docker daemon会试图从本地获取相关的镜像:本地镜像不存在时,其将从registry中下载该镜像并保存到本地: 拉取镜像时,如果不知道registry仓库地址,默认从Docker Hub搜索拉取镜像 1.2 分类 Sponsor Registry:第三方的registry,供客户和docker社区使用: mi…
最近一直忙于开发,没有时间好好总结一下docker的知识.其实现在docker的教程已经很多很多了,但是很多系统的教程都是基于Ubuntu系统,因为官方推荐使用Ubuntu系统啊,原因在于Ubuntu有Union FS 这类存储系统,而Centos并没有,只能使用块设备的一些机制(如 snapshot )进行模拟,如 devicemapper.所以我想写一个关于Centos上使用并部署的Docker的系列文章,希望能帮助大家学习. Docker 版本号在 2017 年以前,使用 <大版本号>.…
Docker逐渐成为虚拟化技术的佼佼者,Docker技术也是架构师的必备技能. 什么是Docker Docker 是一个开源的应用容器引擎,基于Go语言,诞生于2013年初,最初发起者是dotCloud公司,开发者可以打包应用到一个轻量级.可移植的容器中,然后发布到主流Linux系统上运行. 为什么用Docker 持续交付和部署:使用Docker可以通过定制应用镜像来实现持续集成,持续交付,部署.开发人员构建后的镜像,结合持续集成系统进行集成测试,而运维人员则可以在生产环境中快速部署该镜像,也可…
1 什么是docker docker是基于GO语言编写的开源容器项目,诞生于2013年初,到目前为止,已经经历了6年的发展演变.现如今,docker已经非常火爆,特别是在一线IT企业,部署.运维等工作都借助docker来展开.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低. 如何你还不熟悉docker,那就赶紧学习起来吧. 2 d…
=======================docker 基础镜像环境 alpine=======================可以使用 docker search 命令搜索指定的 image, 或者访问网址 https://hub.docker.com/explore/ 在hub官网会经常能看到 alpine 字样, alpine 是要给非常轻量级的Linux发行版,Docker官方已经推荐使用alpine 代替之前的 Ubuntu作为基础镜像环境, 好处是制作出的最终镜像文件很多, 但d…
1.Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker . 通过 uname -r 命令查看你当前的内核版本 $ uname -r 2.使用 root 权限登录 Centos.确保 yum 包更新到最新. $ sudo yum update 3.卸载旧版本(如果安装过旧版本的话) $ sudo yum remove docker docker-common docker-selinux docker-engin…
一.概念 Docker Compose 是官方编排项目之一,负责快速的部署分布式应用.它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML格式)来定义一种相关联的应用容器为一个项目. Docker  Compose 中有两个重要的概念: 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例.项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义. Docker Comp…
作者:周立 在生产中,往往有严格控制服务启动顺序的需求.然而Docker Compose自身并不具备该能力.要想实现启动顺序的控制,Docker Compose建议我们使用: wait-for-it dockerize wait-for 本文演示如何使用wait-for-it 来控制服务的启动顺序,其他两款工具的使用方法大同小异,读者可自行研究. 还用前面编排WordPress博客的例子,现在我们想让MySQL先启动,启动完成后再启动WordPress. 分析 分析:找到WordPress的Do…
在Docker容器中部署MongoDB 不做铺垫,直接开撸: 一.软件准备: docker(已安装) MongoDB-3.2.0.tgz 二.准备配置文件mongo.conf port=27017 dbpath=/data/mongo_data logpath=/data/mongo_log 注意:配置mongo时,不要设置后台运行,否则docker启动后会自动退出...!!! 三.Dockerfile编写: FROM centos MAINTAINER ahaii RUN groupadd -…
部署elasticsearch # es 暴露的端口很多 # es 十分的消耗内存 # es 的数据一帮需要放置到安全目录!通过挂载实现 # DockerHub上安装文档,其中 --net somenetwork 选项是网络配置 # 启动 elasticsearch[root@localhost ~]# docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node"…
环境说明 两个虚拟机 操作系统Centos7 DOcker版本1.8 脚本内容: 1  4  7  10  19  27  32    33  39   -j ACCEPT 47    48  # Restart Docker daemon to use the new BRIDGE_NAME 49  service docker restart 说明: 在不同主机上执行以上脚本,REMOTE_IP和BRIDGE_ADDRESS根据实际地址进行调整. 结果图:     流程整理 1.关闭seli…
1.创建在FlaskApp/app中创建Flask项目: 2.生成web项目所需的运行环境:pip3 freeze > ../requirements.txt 3.编辑Dockerfile: # 依赖的的操作系统 FROM ubuntu:16.04 # image的作者和作者邮箱 MAINTAINER oldeleven "gsfmcntt1022@163.com" # 安装项目的执行环境 RUN apt-get update -y && \ apt-get in…
本篇是关于 docker 容器的端口映射和容器之间的互联内容. 注:环境为 CentOS7,docker 19.03. docker 的容器除了能连接网络外,在许多时候,我们需要让多个容器来协同完成任务.为了应对这样的需求,docker 提供了两种机制: docker 容器和主机间的端口映射. 利用互联机制让多个容器通过容器名来快速访问. 端口映射实现容器访问 容器启动时,如果不指定对应的参数,容器外部是无法访问容器内部的.要让外部能访问内部的话,在容器启动时利用选项 -p | -P 可以实现端…
docker数据卷(volumn) 一. 为什么需要数据卷 docker镜像是由多个文件系统(只读层)叠加而成,当我们启动一个容器的时候,docker的服务端会加载镜像的只读层,并在最顶层创建一个可读写层.当运行的容器修改现有的文件,该文件会从只读层拷贝到读写层,其实并没有影响到镜像本身,依然存在于镜像中.当我们删除掉容器,容器运行时的数据都会丢失,当我们通过镜像重新run一个容器,该容器还是会回到最初的状态.那么问题来了,我们该如何保存我们运行中的数据了?这个问题有两种解决方法:a. 我们可以…
Linux路由机制打通网络 路由机制是效率最好的 docker128上修改Docker0的网络地址,与docker130不冲突 vi /usr/lib/systemd/system/docker.service(修改配置文件) ExecStart=/usr/bin/docker daemon --bip=172.18.42.1/16 -H fd:// - H=unix:///var/run/docker.sock 重要参数:–bip=172.18.42.1/16 systemctl daemon…
数据卷容器 什么是数据卷容器? 容器和容器之间实现数据共享 一个容器先于宿主机创建挂载方式,宿主机就会有改卷的目录 第二个容器使用命令--volumes-from 第一个容器,共享使用了第一个容器与宿主机创建的卷.第一个容器就被称之为数据卷容器 第三个容器使用命令--volumes-from 第一个容器,共享使用了第一个容器与宿主机创建的卷 -- 总结:数据卷容器,实际上是第一个容器跟宿主机创建了卷,其他容器通过第一个容器使用这个卷. 类似于具名挂载,具名挂载是-v的时候选择卷名,减少重复输入相…
#官方的使用:我们之前的启动都是后台,停止容器后,容器还是可以看到#docker run -it --rm,一般用来测试,用完就会删除容器,镜像还在[root@localhost ~]# docker run -it --rm tomcat:9.0#实操#下载再启动[root@localhost ~]# docker pull tomcat#启动运行[root@localhost ~]# docker run -d -p 3355:8080 --name tomcat01 tomcat#测试访问…
step-1 搜索镜像 使用search命令,建议去dockerhub上搜索,可以看到帮助文档 [root@localhost ~]# docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 15364 [OK] jwilder/nginx-proxy Automated Nginx reverse proxy for docker con- 2060 [OK] ri…
接着<二> 创建一个网段(和二在一个网段) docker network create --subnet=172.19.0.0/24 pro-net docker run -d --name my-mysql   -p 3311:3306 -v v5:/var/lib/mysql   -e MYSQL_ROOT_PASSWORD=w2014221317b   --net=pro-net --ip 172.18.0.6  mysql:8.0…
1.我们部署的是sameersbn/docker-gitlab这个镜像. docker pull sameersbn/gitlab 2.配置文件,我们不需要去run它,只需要先下载一个compose的配置文件. wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml 打开这个文件,把它的内容按照你自己的需要修改,比如改改github登录的配置信息,邮件发送的配置信息等. 比如…
上一篇文章介绍了docker镜像的制作与发布,本文主要介绍实际docker工程部署中经常用到的docker-compose工具,以及docker的网络配置和负载均衡. Docker-compose介绍 实际开发过程中,在一个项目中,我们常将不同的模块放在单独的docker中,方便维护和扩展.比如我们一个项目可能有MySQL镜像.Nginx镜像.Spring Boot后端镜像,我们在实际部署中可以采用上篇文章介绍的方法,分别打包,分别启动:但是这样太费精力,而且还容易出错. 因此Docker-co…
上篇文章引入了Docker的基本原理和操作,本节文章主要介绍如何制作Docker镜像和发布. 镜像文件结构 Docker镜像的本质是一系列文件的集合,这些文件依次叠加,形成了最后的镜像文件,类似于下图所示的结构, 从底层往上,依次是文件系统层,操作系统层,专有镜像层,读写层. 启动文件层:Docker启动时的用到的文件系统,启动完成后会自动脱离,用户不会与这一层直接打交道. 操作系统层:这一层主要是操作系统相关的一些文件,根据发行版本的不同,可能有CentsOS.Ubuntu等等.文件包含dev…
目录 1.1.Docker架构简介 1.2.Docker 两个主要部件 1.3.虚拟机和Docker对比: 1.4.Docker内部结构 Docker系列之原理简单介绍 @ Docker是一个开源的应用容器引擎:是一个轻量级容器技术: Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像:运行中的这个镜像称为容器,容器启动是非常快速的. 1.1.Docker架构简介 Docker 使用客户端-服务器 (C/S) 架构模式,先给出官方的…
Docker学习 Docker学习-VMware Workstation 本地多台虚拟机互通,主机网络互通搭建 Docker学习-Docker搭建Consul集群 Docker学习-简单的私有DockerHub搭建 Docker学习-Spring Boot on Docker Docker学习-Kubernetes - 集群部署 简介 kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写.是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的…
Docker是一个开源的应用容器引擎,基于Go语言,并遵从Apache2.0协议开源. Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化. Docker容器是完全使用沙箱机制,相互之间不会有任何接口,相比于虚拟机,容器启动速度快,性能开销极低. Docker架构 首先介绍下Docker的架构,可以由下图表示,主要由Clients.Hosts.Registries组成,下面提到了几个专有名词,我来一个个单独介绍:…