docker-compose部署线上项目爬坑记(一)
最近项目部署上线,使用的是docker-compose的方式。由于刚接触docker-compose所以配置文件或是命令不熟悉导致部署过程中出现各种问题,现在我把docker-compose部署方法和遇到问题一一记下来。
docker-compose安装部署
由于docker-compose是python的一个包文件所以我们可以pip来安装。
安装docker-compose
sudo pip install docker-compose docker-compose -v
安装完后再打印出docker-compose看是否安装成功
目录结构
└── docker-test # docker-compose部署根目录 ├── docker-compose.yml # 容器配置文件 ├── Dockerfile # 自定义容器构建文件 ├── project # 项目文件 | ├── app.py | └── requirements.txt ├── db # db挂载目录,挂载到容器 | └── my.cnf # db的配置文件,挂载到容器 | └── nginx # nginx挂载目录,挂载到容器 └── conf.d # nginx服务配置目录,挂载到容器 └── nginx.conf # nginx服务配置文件,挂载到容器
docker-compose.yml文件结构详解
yml文件结构
version: "3" services: worker: build: context: ./ dockerfile: Dockerfile image: example_worker container_name: worker_container environment: MYSQL_PASSWORD: MYSQL_HOST: MYSQL_NAME: MYSQL_USER: MYSQL_PORT: env_file: - ./worker.env volumes: links: - db depends_on: - db networks: - backend - frontend database: image: mysql:5.7 container_name: worker_db volumes: ports: - "3306:3306" networks: - backend networks: backend: driver: bridge frontend: driver: bridge
*注:如果是要使用构建镜像命令构建自定义镜像build参数必须加上,部署遇到的第一个坑就是文件参数没有使用正确
参数详解
- version:表示我们的compose文件的版本
- services:即我们要开始定义服务,每个docker容器为一个服务
- build:指定该容器构建参数,可以指定包含构建上下文的路径
version: '3' services: webapp: build: ./dir
或者作为一个对象传入上下文路径和指定的Dockerfile文件
version: '3' services: webapp: build: context: ./dir dockerfile: Dockerfile-alternate
- image:指定启动容器的镜像,可以是镜像仓库/标签或者镜像id
image: mysql:5.7 image: tutum/influxdb image: example-registry.com:4000/postgresql image: a4bc65fd
如果镜像不存在,Compose将尝试从官方镜像仓库将其pull下来,如果你还指定了build,在这种情况下,它将使用指定的build选项构建它,并使用image指定的名字和标记对其进行标记。
- container_name:指定一个自定义容器名称
- environment:设置环境变量
- links:链接到另一个服务中的容器,可以是服务名称和链接别名
- volumes:卷挂载路径设置。- ./:/var/www,这里是将当前文件夹挂载到容器的/var/www 目录下
- ports:暴露端口信息。常用的简单格式:使用宿主:容器
- restart:no是默认的重启策略,在任何情况下都不会重启容器。 指定为always时,容器总是重新启动。如果退出代码指示出现故障错误,则on-failure将重新启动容器。
restart:"no" restart:always restart:on-failure
docker-compose基本命令
基本命令使用
- docker-compose build:创建一个自定义容器,必须结合build参数使用
- docker-compose up:该命令十分强大,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。加上-d参数表示后台启动
- docker-compose ps:查看当前容器的状态
- docker-compose stop:停止当前正在运行的容器。下次docker-compose up 默认仍会继续使用之前的容器和数据
- docker-compose down:关闭并删除当前的容器
以上就是使用docker-compose.yml文件部署的所有知识点,下次更新如果使用Dockerfile文件来创建自定义镜像。
原创文章:http://bymeetu.com/article/aticleTow/
您未登录,请登录或注册后评论
0 人参与 | 0 评论
暂时没有评论内容,欢迎来尬聊!