资讯专栏INFORMATION COLUMN

分解docker在lnmp环境搭建中的作用

tommego / 1841人阅读

摘要:如果不用我们可能将上述讲的命令每搭建一次就需要执行一遍,有没有能统一管理的有,就是在环境搭建中的作用快速创建镜像,快速创建并运行容器,实现统一管理。

前言

初学者在dcoker学习过程中,可能不太清楚docker中那么多的命令,参数,工具在lnmp环境搭建中起了什么作用,下面跟着我来熟悉一下。(本文面向的是不怎么熟悉linux的:phper)

镜像,容器,仓库

镜像:Docker 镜像就是一个只读的模板。
容器:Docker 利用容器来运行应用。
仓库:仓库是集中存放镜像文件的场所。

在环境搭建中的作用:通过镜像创建容器,通过容器安装运行应用,最后可以将容器生成为镜像保存到仓库
创建容器的三种方法:

使用centos镜像,通过命令创建一个容器

docker pull centos
# pull 拉取镜像
docker run -it -P --name "centos-test" --rm centos /bin/bash
# --name 指定容器别名
# -P 通过NAT机制将容器标记暴露的端口自动映射到本地主机的临时端口
# -i 保持标准输入打开 默认为false
# -t 是否分配一个伪终端
# 启动一个bash终端,允许用户进行交互

使用centos基础镜像,通过Dockerfile创建自定义镜像

FROM centos
docker build -t centos-slef/laster .

使用centos基础镜像,通过docker-compose创建容器并启动

lnmp:
image: centos
# 使用build 参数,会通过 Dockerfile 创建镜像并基于此镜像创建运行容器
# 使用image 参数,会直接通过 image 指定的镜像创建并运行容器
docker-compose up --build

通过容器创建镜像

在容器中安装lnmp环境

退出并执行

    docker commit -a "amor" -m "add lnmp" c6b9b6cf3174 lnmp:1.4.0
    # -a 作者信息
    # -m 备注
    # c6b9b6cf3174 容器id 运行的通过:docker ps 查看 停止的通过:docker ps -qa 查看

Dockerfile

Dockerfile:Dockerfile 是一个文本格式的配置文件,用户可以使用Dockerfile来快速的创建自定义镜像。
在环境搭建中的作用:

对于不想用Dockerfile创建lnmp环境的人来说,可以起到微调以容器创建的镜像的作用

# 假设,我们已经通过容器创建了一个镜像 lnmp:1.4.0
FROM lnmp:1.4.0
RUN yum install -y git
# 当然你可以继续递归:通过lnmp:1.4.0镜像,创建容器,进入容器安装应用,生成镜像

对于运维来说,直接可以用Dockerfile创建lnmp环境镜像

docker-compose

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"

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27100.html

相关文章

  • docker 搭建lnmp开发环境

    摘要:学习心得前言耗时一周零三天,终于用搭建起自己的开发环境。来搭建一下环境,然后,桌面没了。作为过来人,我只想说,一定要只做一件事,不要过多的去研究,我们只是想搭建本地运行环境。 docker学习心得 前言 耗时一周零三天,终于用docker搭建起自己的开发环境。详细过程:请参考分解docker在lnmp环境搭建中的作用showImg(https://segmentfault.com/im...

    Hydrogen 评论0 收藏0
  • docker 搭建lnmp环境

    摘要:基础命令关于搜索下载查看或者删除单个删除多个删除查看信息占用关于查看重启停止杂项命令网络相关清除网络缓存查看网络列表查看详情挂载目录清除缓存查看列表查看详情系统相关系统信息查看占用清除所有包含构建失败的镜像没有被使用的网络配 docker基础命令 关于images 搜索 docker search php 下载 docker pull php:7.3.6-fpm-alpine3....

    msup 评论0 收藏0
  • docker 搭建lnmp环境

    摘要:基础命令关于搜索下载查看或者删除单个删除多个删除查看信息占用关于查看重启停止杂项命令网络相关清除网络缓存查看网络列表查看详情挂载目录清除缓存查看列表查看详情系统相关系统信息查看占用清除所有包含构建失败的镜像没有被使用的网络配 docker基础命令 关于images 搜索 docker search php 下载 docker pull php:7.3.6-fpm-alpine3....

    cucumber 评论0 收藏0
  • mac上利用docker搭建lnmp开发环境

    摘要:因为站点的采用自签名方式,所以浏览器有安全提示,继续访问就可以了,自己的站点用第三方认证证书替换即可。这是因为代码是在容器中,容器启动时会自动在中加上就是说,自动指向了容器动态生成的。则是跨容器访问,参数用指定的名称,端口用。 项目地址https://github.com/shmilylbel... 安装docker 新版的docker for mac 下载地址docker-ce-de...

    Doyle 评论0 收藏0

发表评论

0条评论

tommego

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<