去发现生活中的美好,记录生活中的点点滴滴

docker-compose

docker admin 68℃

1、安装:

yum install python-pip
pip install docker-compose

2、安装之后,查看版本:

docker-compose --version

3、docker-compose常用命令:

docker-compose -f my.yaml version    查看docker-compose版本信息
docker-compose -f lnmp.yaml images      列出镜像
docker-compose -f lnmp.yaml images -q    列出镜像ID
docker-compose up -d nginx                     构建建启动nignx容器
docker-compose exec nginx bash            登录到nginx容器中
docker-compose -f lnmp.yaml exec nginx env    在容器中运行命令
docker-compose down                              停止且删除容器、网络、卷、镜像
docker-compose ps                                   显示所有容器
docker-compose build                               构建(重新构建)项目中的服务容器
docker-compose build nginx                     构建指定镜像
docker-compose build --no-cache nginx   不带缓存的构建
docker-compose restart nginx                   重新启动nginx容器
docker-compose run --no-deps --rm php-fpm php -v       在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器
docker-compose logs  nginx                     查看nginx的日志 
docker-compose logs -f nginx                   查看nginx的实时日志
docker-compose config  -q                        验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。 
docker-compose events --json nginx       以json的形式输出nginx的docker日志
docker-compose pause nginx                 暂停nignx容器
docker-compose unpause nginx             恢复ningx容器
docker-compose rm nginx                       删除容器(删除前必须关闭容器)
docker-compose stop nginx                    停止nignx容器
docker-compose start nginx                    启动nignx容器
docker-compose -f my.yaml scale nginx=2   将nginx容器扩容为两个
docker-compose -f my.yaml top               显示运行进程
docker-compose -f my.yaml top nginx    指定某一个service

接下来讲解使用docker-compose一键打包环境:

1、创建好项目环境相关目录:

├── docker-compose.yaml
├── mysql
│   ├── conf
│   ├── data
│   └── Dockerfile
├── nginx
│   ├── conf
│   │   └── nginx.conf
│   └── Dockerfile
├── php
│   └── Dockerfile
└── www

2、配置文件docker-compose.yaml

vim docker-compose.yaml

可以配置多个服务和所需软件,这里只配置nginx、php、mysql,当然也可以继续加入其它服务软件进行一起打包处理。

version: '3'
services:
  nginx:
    build: ./nginx  如果使用Dockerfile文件构建,则使用这个进行安装构建
    #image: nginx:latest  也可以直接指定镜像进行构建,注意,这里的版本必须在docker hub上有才可以,否则会报错
    ports:
      - "80:80"  #映射端口,格式为主机端口:容器服务端口
    links:
      - "php"
    volumes:
      - /home/dnmp/nginx/nginx.conf:/etc/nginx/conf.d/default.conf  #映射主机到容器文件,格式为:主机目录或文件:docker容器内目录或文件
      - /home/dnmp/www:/var/www #映射挂载目录,格式为:主机目录:docker容器内目录

  php:
    build: ./php
    #image: php:7.2-fpm
    ports:
      - "9000:9000"
    links:
      - "mysql"
    volumes:
      - /home/dnmp/www:/var/www

  mysql:
    build: ./mysql
    #image: mysql:5.7
    ports:
      - "3306:3306"
    volumes:
      - /home/dnmp/mysql/data/:/var/lib/mysql/  #映射文件
    environment:
      MYSQL_ROOT_PASSWORD: 123456  #环境变量,这里指定数据库密码

3、如果不直接使用image安装,则可使用dockerfile进行灵活配置安装:

vim ./mysql/Dockerfile
FROM mysql:5.7
vim ./php/Dockerfile
FROM php:7.3-fpm
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng12*-dev \
vim \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install gd \

vim ./nginx/Dockerfile

FROM nginx:1.19
RUN apt-get update && apt-get install -y vim

4、配置nginx.conf

server {
    listen       80;
    server_name  localhost;
    location / {
        root   /var/www;
        index  index.html index.htm index.php;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /var/www;
    }
    location ~ \.php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

5、在www新增一个文件index.php

vim index.php

6、在dnmp目录下执行命令,进行安装构建:

docker-compose up
docker-compose up -d #后台运行

7、访问:http://IP/index.php

 

 

 

转载请注明:永盟博客 » docker-compose

喜欢 (1)