docker-compose安装,编排

compose是docker公司推出的一个工具软件,可以管理多个docker容器组成一个应用,你需要定义一个yaml格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后只要一个命令,就能同时启动/关闭这些容器。

docker-compose是docker官方的开源项目,负责实现对docker容器集群的快速编排。

安装:

第一:docker-compose和docker版本需要匹配:

第二步:下载;下载对应操作系统版本的compose

第三布:安装

1.下载docker-compose到/usr/local/bin目录下

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.赋予docker-compose执行权限

sudo chmod +x /usr/local/bin/docker-compose

3. 测试

docker-compose --version

卸载:

(使用curl安装):

sudo rm /usr/local/bin/docker-compose

(使用pip安装):

pip uninstall docker-compose

二、使用

例子(lnmp)

version: "3" networks: lnmp: volumes: lnmp: services: mysql: hostname: mysql container_name: mysql57 image: mysql:5.7 volumes: - /usr/local/soft/mysql/data:/var/lib/mysql - /usr/local/soft/mysql/conf:/etc/mysql - /usr/local/soft/mysql/log:/var/log/mysql restart: always ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: 123456 TZ: Asia/Shanghai networks: - lnmp command: --default-authentication-plugin=mysql_native_password #解决无法访问 php: hostname: php container_name: php7.4 build: ./php depends_on: - mysql restart: always volumes: - /usr/local/soft/nginx/html:/var/www/html - /usr/local/soft/php/conf:/usr/local/etc links: - mysql:mysql ports: - "9000:9000" networks: - lnmp nginx: hostname: nginx restart: always container_name: nginx_php image: nginx:stable ports: - "80:80" - "443:443" - "88:88" - "99:99" - "8888:8888" - "999:999" - "777:777" links: - "php:php" depends_on: - php volumes: - /usr/local/soft/nginx/conf:/etc/nginx - /usr/local/soft/nginx/log:/var/log/nginx - /usr/local/soft/nginx/html:/usr/share/nginx/html networks: - lnmp

常用操作

1.config验证 Compose 文件格式是否正确,若正确则显示配置,若格式错误显示错误原因。如:

docker-compose -f xxx.yml config

此命令不会执行真正的操作,而是显示 docker-compose 程序解析到的配置文件内容

2.images列出 Compose 文件中包含的镜像。如

docker-compose -f xxx.yml images

3.ps列出项目中目前的所有容器。如

docker-compose -f xxx.yml ps

4.build构建(重新构建)项目中的服务容器。如:

docker-compose -f xxx.yml build

一般搭配自定义镜像,比如编写的Dockfile,功能类似于docker build

5.up该命令十分强大(重点掌握),它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。如

docker-compose -f xxx.yml up

默认情况,docker-compose up 启动的容器都在前台,控制台将会同时打印所有容器的输出信息,可以很方便进行调试

经验分享 程序员 微信小程序 职场和发展