初学者在dcoker学习过程当中,可能不太清楚docker中那么多的命令,参数,工具在lnmp环境搭建中起了什么做用,下面跟着我来熟悉一下。(本文面向的是不怎么熟悉linux的:phper)php
镜像:Docker 镜像就是一个只读的模板。
容器:Docker 利用容器来运行应用。
仓库:仓库是集中存放镜像文件的场所。mysql
在环境搭建中的做用:经过镜像建立容器,经过容器安装运行应用,最后能够将容器生成为镜像保存到仓库
建立容器的三种方法:linux
使用centos镜像,经过命令建立一个容器nginx
docker pull centos # pull 拉取镜像 docker run -it -P --name 'centos-test' --rm centos /bin/bash # --name 指定容器别名 # -P 经过NAT机制将容器标记暴露的端口自动映射到本地主机的临时端口 # -i 保持标准输入打开 默认为false # -t 是否分配一个伪终端 # 启动一个bash终端,容许用户进行交互
使用centos基础镜像,经过Dockerfile建立自定义镜像git
FROM centos
docker build -t centos-slef/laster .
使用centos基础镜像,经过docker-compose建立容器并启动web
lnmp: image: centos # 使用build 参数,会经过 Dockerfile 建立镜像并基于此镜像建立运行容器 # 使用image 参数,会直接经过 image 指定的镜像建立并运行容器
docker-compose up --build
经过容器建立镜像redis
退出并执行sql
docker commit -a 'amor' -m 'add lnmp' c6b9b6cf3174 lnmp:1.4.0 # -a 做者信息 # -m 备注 # c6b9b6cf3174 容器id 运行的经过:docker ps 查看 中止的经过:docker ps -qa 查看
Dockerfile:Dockerfile 是一个文本格式的配置文件,用户能够使用Dockerfile来快速的建立自定义镜像。
在环境搭建中的做用:docker
对于不想用Dockerfile建立lnmp环境的人来讲,能够起到微调以容器建立的镜像的做用shell
# 假设,咱们已经经过容器建立了一个镜像 lnmp:1.4.0 FROM lnmp:1.4.0 RUN yum install -y git # 固然你能够继续递归:经过lnmp:1.4.0镜像,建立容器,进入容器安装应用,生成镜像
Docker官方编排工具,负责实现对Docker容器集群的快速编排。定位:定义和运行多个Docker容器的应用.
如今咱们有这样的一个需求,我不仅仅须要lnmp环境,可能还须要lamp环境,可能还有redis。若是不用docker-compose 咱们可能将上述讲的命令每搭建一次就须要执行一遍,有没有能统一管理的?有,就是docker-compose.
在环境搭建中的做用:
快速建立镜像,快速建立并运行容器,实现统一管理。
lnmp: build: . # 根据当前路径下的Dockerfile建立镜像 ports: # 将定义的端口暴露并映射到本地 - "80:80" - "443:443" - "22:22" volumes: # 挂载文件夹 # nginx 配置文件夹 - ./conf/nginx/:/usr/local/nginx/conf/ # mysql 配置文件 - ./conf/mysql/my.cnf:/etc/my.cnf:rw # php配置文件 - ./conf/php/:/usr/local/php/etc/ # 项目目录 - /data/Nutcloud/Ubuntu/website/:/data/website/ # nginx 日志 - /data/Nutcloud/Ubuntu/docker/lnmp/log:/ links: # 容器互联 - redis:redis tty: true # 保证docker-compose 执行后,容器不自动退出 redis: image: redis:latest ports: - "6379:6379"