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                              # 删除所有nginx容器,镜像
docker-compose ps                                   # 显示所有容器
docker-compose restart nginx                   # 重新启动nginx容器
docker-compose run --no-deps --rm php-fpm php -v       在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器
docker-compose build nginx                     # 构建镜像 。
docker-compose build --no-cache nginx   不带缓存的构建。
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.yml 文件名:
$ docker-compose -f server.yml up -d

docker-compose中有两种方式可以暴露容器的端口:ports和expose。

ports

ports暴露容器端口到主机的任意端口或指定端口,用法:

ports:
- "80:80" # 绑定容器的80端口到主机的80端口
- "9000:8080" # 绑定容器的8080端口到主机的9000端口
- "443" # 绑定容器的443端口到主机的任意端口,容器启动时随机分配绑定的主机端口号

不管是否指定主机端口,使用ports都会将端口暴露给主机。

容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P(大写) 或 -p (小写) 参数来指定端口映射。

(1) 当使用-P标记时,Docker 会随机映射一个49000~49900的端口到内部容器开放的网络端口。

使用docker ps可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应用提供的界面。

$ sudo docker run -d -P training/webapp python app.py
$ sudo docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155->5000/tcp nostalgic_morse

同样的,可以通过docker logs命令来查看应用的信息。

$ sudo docker logs -f nostalgic_morse
* Running on http://0.0.0.0:5000/
10.0.2.2 - - [23/May/2014 20:16:31] "GET / HTTP/1.1" 200 -
10.0.2.2 - - [23/May/2014 20:16:31] "GET /favicon.ico HTTP/1.1" 404 -

(2) -p(小写)则可以指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器。支持的格式有 hostPort:containerPort、ip:hostPort:containerPort、ip::containerPort。

expose

expose暴露容器给link到当前容器的容器,用法:

expose:
- "3000"
- "8000"

以上指令将当前容器的端口3000和8000暴露给link到本容器的容器。

和ports的区别是,expose不会将端口暴露给主机。

  

 ############

解释一下

build 构建或重建服务
help 命令帮助
kill 杀掉容器
logs 显示容器的输出内容
port 打印绑定的开放端口
ps 显示容器
pull 拉取服务镜像
restart 重启服务
rm 删除停止的容器
run 运行一个一次性命令
scale 设置服务的容器数目
start 开启服务
stop 停止服务
up 创建并启动容器

docker-compose 如何配置

先看看我自己写的一个 docker-compose.yml

version: '2'
services:
    nginx:
            image: bitnami/nginx:latest
            ports:
                - '80:80'
                - '1443:443'
            volumes:
                - /root/wp_yunlan/nginx/:/bitnami/nginx/
    mariadb:
            image: bitnami/mariadb:latest
            volumes:
                - /root/wp_yunlan/mariadb:/bitnami/mariadb
    wordpress:
            image: bitnami/wordpress:latest
            depends_on:
                - mariadb
                - nginx
            environment:
                - WORDPRESS_USERNAME=neptunemoon    #这个账户你是自己设定的
                - WORDPRESS_PASSWORD=123123         #这个密码是你自己设定的
            ports:
                - '8080:80'
                - '8081:443'
            volumes:
                - /root/wp_yunlan/wordpress:/bitnami/wordpress
                - /root/wp_yunlan/apache:/bitnami/apache
                - /root/wp_yunlan/php:/bitnami/php

nginx 和 mariadb,wordpress 是要启动的三个服务

顺序不是重要的,我们看见wordpress中有个 depends_on: 的属性

depends_on: 依赖

代表wordpress 依赖于 

- mariadb
- nginx

两个服务, 所以他们两个会先启动

image: 镜像

就是你的 docker 镜像
我们用
docker search mariadb
找到我们需要的镜像

posted @ 2019-12-05 12:21  linuxws  阅读(969)  评论(0编辑  收藏  举报