编程技术分享平台

网站首页 > 技术教程 正文

docker-compose 使用技巧(三)(docker的compose)

xnh888 2024-10-15 18:10:56 技术教程 34 ℃ 0 评论

docker-compose 使用技巧(三)

一:基本的常用命令

docker-compose up -d nginx 构建建启动nignx容器

docker-compose exec nginx bash 登录到nginx容器中

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 inspect -f='{{.Name}}' $(sudo docker ps -a -q)

查看IP地址

docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

查看名称,端口,IP

docker inspect -f='{{.Name}} {{.NetworkSettings.IPAddress}} {{.HostConfig.PortBindings}}' $(docker ps -aq)

查看名称,端口,IP

docker inspect -f '{{.Name}} -{{.HostConfig.PortBindings}}- {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)


二:flannel 网络测试

yum -y install nc telnet






三:docker-compose 使用默认的flannel网络

使用flannel 部署后,网络不同,需要使用与flannel同网段,配置 network_mode: bridge

version: "3"
services:
  service_ms_nginx:
    image: "nginx"
    network_mode: bridge
    #    networks:
#      default:
#        ipv4_address: 172.33.0.3
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      #- "/data/ms-app/ms-web:/var/log/nginx"
      #- "/data/ms-app/ms-web/nginx:/etc/nginx"
      #- "/data/ms-app/ms-web:/var/www"
    restart: "always"
    #command:  nginx  
    environment:
      LANG: "C.UTF-8"
    ports:
      - "${host_port}:80"
    container_name: ${container_name}
#networks:
#  default:
#    external:
#      name: bridge 


四:docker compose 容器退出

docker run 正常

docker-compose中启动镜像失败的问题

控制终端缺失

启动失败是因为缺失了控制终端的配置,这里有两种方式修复;

使用tty参数(推荐使用)

修改docker-compose.yml,增加一个配置tty:true,如下:

master:
  image: java
  tty: true
#docker-compose.yml
version: "3"
services:
  service_ms_clould:
    image: "ledou_ms_nginx1.14_php7:v1.1"
    tty: true
    networks:
      - docker1
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - "/data/ms_sh_pro/logs/nginx:/var/log/nginx"
      - "/data/ms_sh_pro/ms-app/ms-clould/nginx:/etc/nginx"
      - "/data/ms_sh_pro/ms-app/app/ms-clould:/var/www"
    #restart: "always"
    command: /bin/sh /data/scripts/auto_service.sh 
    environment:
      LANG: "C.UTF-8"
    ports:
      - "${host_port}:80"
    dns:

      - 10.5.90.15
      - 10.5.90.9
    container_name: ${container_name}
networks:
  docker1:
    external: true



/data/scripts/auto_service.sh

#!/bin/bash

#/usr/sbin/sshd -D &

/etc/init.d/php-fpm start

/etc/init.d/nginx start

/bin/bash



本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表