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