docker构建lnmp环境,docker-compose.yaml文件内容如下:
version: "3.6"
services: # 代表就是构建一组服务 -》一组容器 php,nginx,redis
php: # 要创建的服务-》就是容器php
build:
context: ./php #由dockerFile生成
image: php_compose
container_name: php_compose # 指定创建的容器名称
ports: # 绑定端口
- "9001:9000" # - "宿主机端口 : 容器端口"
volumes: # 数据卷
- "//echo/docker/shine2004/09/lnmp/php/www:/www" # - "宿主机目录 : 容器目录"
nginx: # 要创建的服务-》就是容器nginx
build:
context: ./nginx
image: nginx_compose
container_name: nginx_compose # 指定创建的容器名称
ports:
- "8001:80"
volumes:
- "//echo/docker/shine2004/09/lnmp/nginx/conf:/conf"
command: top
redis: # 要创建的服务-》就是容器redis
image: redis5asm
container_name: redis_compose # 指定创建的容器名称
ports:
- "6379:6379"
command: top
docker-compose.yaml文件下执行:
docker-compose up -d
问题:
信息显示我们启动的容器状态为Exited (1) About a minute ago,也就是说虽然创建了容器,但是该容器并未正常运行;
控制终端缺失
启动失败是因为缺失了控制终端的配置,这里有两种方式修复;
使用tty参数(推荐使用)
修改docker-compose.yml,增加一个配置tty:true,如下:
master:
image: java:8u111-jdk
tty: true
1
2
3
先执行docker-compose down将之前的容器删除,再执行docker-compose up -d启动,可以发现启动成功,并且可以成功进入容器进行操作
dokcer查看日志
docker logs -f -t --since="2018-02-08" --tail=100 容器名