Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 首先安装docker,centos的官方发行版本从6.5以上就内核支持docker了,可以直接运行以下命令完成安装。 *我的测试环境是阿里云官方的centos7.4镜像(后续访问中要注意本地环境与线上环境的区别),非root账户在命令前加sudo。 安装完成后启用docker服务,可运行
安装启动完成后运行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表示挂载目录,格式为宿主文件或目录:容器内文件或目录,文件或目录挂载后,可以在宿主机上传文件,对应的容器内部环境运行时,会运行对应挂载的文件或目录。
*需要注意镜像中的文件目录,可以在nginx配置文件中查找和修改对应目录。 *镜像拉取pull可以省略,docker会自动拉取本地不存在的镜像,docker images可查看本地镜像列表。 一些常用容器操作命令:
使用docker ps查看容器状态,确保容器运行后,测试环境部署状态,在设置挂载目录mywwwpath下新建php文件index.php *访问ip地址可直接运行php文件,返回熟悉的phpinfo界面。需要注意端口开放,测试环境中的阿里云控制台需设置端口访问规则打开80端口。
|
|