分享

Docker学习笔记(一):使用docker搭建LNMP环境

 小马哥技术屋 2018-08-09

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

首先安装docker,centos的官方发行版本从6.5以上就内核支持docker了,可以直接运行以下命令完成安装。

*我的测试环境是阿里云官方的centos7.4镜像(后续访问中要注意本地环境与线上环境的区别),非root账户在命令前加sudo。

#yum -y install docker-io
安装完成后启用docker服务,可运行

#service docker start

安装启动完成后运行hello-world检测是否成功

#docker run hello-world

*hello-world是官方提供的测试镜像。在运行该命令时,docker将会做如下操作:首先检测本地是否有一个叫hello-world的镜像文件,如果没有,则从docker-hub(类似与github的的管理仓库)上查找名为hello-world的镜像,若存在则下载到本地,若不存在,则返回找不到镜像的错误。拿到镜像之后使用它创造一个容器(container),然后运行容器,得到结果,docker容器的特性是如果该容器运行的镜像中没有可执行的服务,则使用后会立刻关闭该容器。


镜像文件可以直接使用dockerhub上别人已经建立好的镜像,也可以自己创建一个新的镜像使用。初学直接使用别人造好的轮子就好。

查找mysql和php-fpm的镜像文件,docker search mysql和docker search php



搜索出的镜像文件可以直接使用 -d表示后台运行;-i标志保证容器中的STDIN是开启的;-t表示为创建的容器分配一个伪tty终端,进入可查看和修改容器内容;镜像名称后面的冒号表示选取镜像版本;-P表示端口对应,格式为宿主机端口:容器端口;--link表示容器之间相关联,下面的例子表示可以直接在my-lnmp容器中访问my-mysql容器中的内容;-e表示设置环境变量;-v表示挂载目录,格式为宿主文件或目录:容器内文件或目录,文件或目录挂载后,可以在宿主机上传文件,对应的容器内部环境运行时,会运行对应挂载的文件或目录。

  1. #docker run -P 3306:3306 --name my-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
  2. #docker run -P 8080 --name my-lnmp -v mywwwpath:/var/www/html -d richarvey/nginx-php-fpm --link mysql:db

*需要注意镜像中的文件目录,可以在nginx配置文件中查找和修改对应目录。

*镜像拉取pull可以省略,docker会自动拉取本地不存在的镜像,docker images可查看本地镜像列表。

一些常用容器操作命令:

  1. 查看当前运行的容器
  2. #docker ps
  3. 查看当前未运行的容器
  4. #docker ps -l
  5. 查看所有操作过的容器
  6. #docker ps -a
  7. 启动/关闭/重启容器
  8. #docker start/stop/restart container-name
  9. 进入容器内部
  10. #docker exec -idt container-name /bin/bash
  11. 删除容器
  12. #docker rm container-name
  13. 查看容器信息
  14. #docker inspect container-name

使用docker ps查看容器状态,确保容器运行后,测试环境部署状态,在设置挂载目录mywwwpath下新建php文件index.php

  1. <?php
  2. $mysqli = new mysqli("ipaddress","root", "password");
  3. if(!$mysqli) {
  4. echo"database error";
  5. }else{
  6. echo"connect db successful";
  7. }
  8. $mysqli->close();
  9. echo phpinfo();
  10. ?>
*访问ip地址可直接运行php文件,返回熟悉的phpinfo界面。需要注意端口开放,测试环境中的阿里云控制台需设置端口访问规则打开80端口。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多