docker基础部署

# Use an official Python runtime as a parent image

FROM python:2.7-slim   基本运行环境镜像

# Set the working directory to /app

WORKDIR /app

# Copy the current directory contents into the container at /app

COPY . /app

# Install any needed packages specified in requirements.txt          运行环境中安装中间件  ,安装之后还需要运行

RUN pip install --trusted-host pypi.python.org -r requirements.txt

# Make port 80 available to the world outside this container      开放访问端口

EXPOSE 80

# Define environment variable

ENV NAME World

# Run app.py when the container launches              部署程序

CMD ["python", "app.py"]

安装运行好之后可以在次基础上构建新的镜像,之后在其他机器上只要安装了dock,然后运行此镜像即可,启动应用程序,其中的中间件

为了生产环境的方便部署,先将构建的镜像上传到docker官方的注册表,生产部署的时候只要从注册地址拉取运行即可,生产环境只要装原生的docker即可

docker 的swarm还具有nginx的特性,自动负载

任何部分例如群,应用程序都可拆除

docker 分布集群的时候只能通过一个主节点(集群管理器)发布命令到其他机器节点执行

执行 docker swarm init的为集群管理器

执行 docker swarm join的为工作节点

2377  集群管理端口

2376  虚拟机的端口

docker-machine ssh myvm2 --远程登录方式1

设置远程登录的另一种方式:(缓存中设置)

docker-machine env myvm1 //定义文件

export DOCKER_TLS_VERIFY="1"  //开始编辑文件

export DOCKER_HOST="tcp://192.168.99.100:2376"

export DOCKER_CERT_PATH="/Users/sam/.docker/machine/machines/myvm1"

export DOCKER_MACHINE_name="myvm1"

# Run this command to configure your shell: //运行文件,在主节点中运行之后,其他工作节点都会执行

# eval $(docker-machine env myvm1)

部署的时候如果是私有的注册则需要先登录,然后部署

docker login registry.example.com

docker stack deploy --with-registry-auth -c docker-compose.yml getstartedlab

使用集群部署命令的时候,如果只是一台服务器那么会在这个服务部署多个,如果是读个服务器则会在每个服务器上部署相应数量的服务(自动负载到某个服务上)

负载找服务的是通过对应端口的映射找到对应的应用

堆栈就是服务部署的多个节点---在docker的最顶部  docker stack deploy  堆发布

群就是集群

docker可以安装可视化管理工具---另外部署这个服务即可,和应用web同级

      我们在requuire中安装了中间之后,还需要类似启动应用web一样启动这个服务   中间件的镜像是公用的,具体使用下载部署即可,数据持久化在本地

redis中键是指定数据在物理机上的落地地址,如果没有就会在容器内部创建数据目录,docker容器销毁数据就消失

volumes:

      - "/home/docker/data:/data"

placement=[role:manager]   ---指定只运行在集群管理器上

docker cloud

docker ce

通过docker云服务商建立docker节点(类似一个虚拟机一个docker节点),然后通过docker swarm init和docker swarm join 建立集群,

然后等过登录工具登录自己在云上的docker群组,远程执行命令发布自己托管的docker镜像程序,云上设置相应程序中间件的外部端口

相关推荐