docker-compose 安装请看此链接

https://blog.csdn.net/fenglailea/article/details/53119285

其他

一步步跟我做,搭建属于自己的 docker 开发环境
作者:风来了.fox
nginx 1.8.0
php 5.6.x

1.docker 安装

1.1 ubuntu 14.x 15.x

sudo apt-get update
curl -sSL https://get.docker.io/ | sudo sh

1.2 centos 6.x 7.x

sudo yum update
curl -sSL https://get.docker.io/ | sudo sh

1.3 如果安装出现错误

1.3.1

FATA[0000] Error loading docker apparmor profile: fork/exec /sbin/apparmor_parser: no such file or directory () 

安装apparmor软件即可

sudo apt-get install apparmor  

下面需要创建用户和所属用户组,根据1.4 设置

Warning: The docker group is equivalent to the root user; For details on how this impacts security in your system, see Docker Daemon Attack Surface for details.

1.4 设置用户和组

给 docker 设置用户组和用户

sudo useradd -g docker docker
sudo usermod -aG docker docker

2.docker 启动

2.1 启动

2.1.1 旧启动方式

centos 6.x ,ubuntu 14.x

sudo service docker start

2.1.2 新的启动方式

centos 7.x ,ubuntu 15.x

sudo systemctl start docker

2.2 停止

#centos 7.x ,ubuntu 15.x
sudo systemctl stop docker
或
#centos 6.x ,ubuntu 14.x
sudo service docker stop

2.3 重启

#centos 7.x ,ubuntu 15.x
sudo systemctl restart docker
或
#centos 6.x ,ubuntu 14.x
sudo service docker restart

2.4 docker状态

#centos 7.x ,ubuntu 15.x
sudo systemctl status docker
或
#centos 6.x ,ubuntu 14.x
sudo service docker status

2.5 docker 版本

sudo docker -v

3 相关配置

配置文件增加参数

sudo vi /etc/default/docker 

在配置文件中添加或修改

DOCKER="/usr/bin/docker"

增加完成后,重启docker

sudo systemctl restart docker

4 镜像拉取

注意:
如果拉取时间过长,docker hub 会自动切断链接,它会报超时错误!
这个时候再重新执行拉取命令即可,他会接着上次拉取断的位置重新拉取的

4.1 mysql

#来自 https://hub.docker.com/_/mysql/
sudo docker pull mysql:5.6

拉取时间根据每人的网速有关
项目都是根据 mysql 5.6 版本的,所以这里选择5.6版本
mysql:5.6 表示 镜像名称:版本号

4.2 redis

#来自 https://hub.docker.com/_/redis/
sudo docker pull redis

redis 后面没有版本号时,默认拉取最新的一版 即 redis:latest

4.3 ElasticSearch

#来自 https://hub.docker.com/_/elasticsearch/
sudo docker pull elasticsearch

elasticsearch 后面没有版本号时,默认拉取最新的一版 即 elasticsearch:latest

4.4 nginx 和php

#来自 https://hub.docker.com/r/foxiswho/nginx-php
sudo docker pull foxiswho/nginx-php

lanmps 后面没有版本号时,默认拉取最新的一版 即 lanmps:latest
nginx 版本 1.8.0
php 版本 5.6.x

4.5 memcached

有同学可能会使用这个缓存,需要的拿去
我们目前项目没有使用它

#来自 https://hub.docker.com/_/memcached/
sudo docker pull memcached

4.x 镜像拉取相关问题

4.x.1 拉取不成功

重新执行拉取命令

4.x.2 哪种为拉取不成功

如下图:红色框内都是none 的表示拉取不成功,要重新执行拉取命令

5 镜像查看

sudo docker images

6 生成容器

6.1 mysql

sudo docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6

–name 容器名称

mysql 为自定义名称

-p:暴露端口,映射端口(可以映射多个端口) 外部端口:容器内部端口

-p 3306:3306 映射端口

-e:设置任意环境变量(容器内)

MYSQL_ROOT_PASSWORD=root 这里指 设置数据库密码为root

mysql:5.6 镜像名称:版本

6.2 redis

sudo docker run --name redis -p 6379:6379 -d redis:latest

redis 为自定义名称
-p 6379:6379 映射端口, 即 外部端口:容器内端口
redis:latest 镜像名称:版本

6.3 ElasticSearch

sudo docker run --name es -p 9200:9200 -p 9300:9300 -d elasticsearch:latest

es 为自定义名称
-p 9200:9200 映射端口(可以映射多个端口), 即 外部端口:容器内端口
elasticsearch:latest 镜像名称:版本

6.4 Nginx+PHP

6.4.1 方式一 容器内链接

docker run --name lanmps --link mysql:db --link es:es --link redis:redis -p 80:80 -v /home/lanmps/www:/www/wwwroot -d foxiswho/nginx-php

–name 容器名称

–name lanmps 名为lanmps的容器

-p:暴露端口,映射端口(可以映射多个端口) 外部端口:容器内部端口

-p 80:80 外部80端口:容器内部80端口

-d:后台模式运行,如果没有则以前台运行(当前进程关闭后,当前容器自动关闭)

foxiswho/nginx-php 镜像名称:版本

–link:容器内部通信 容器名称:内部别名(内部使用)

–link mysql:db 使用时,直接使用db 就可以访问到数据库mysql容器
php 访问本地mysql 使用的是localhost,容器内部即可使用 db

-v:卷,外部目录虚拟到容器内目录 外部目录:容器内目录

-v /home/lanmps/www:/www/wwwroot
/home/lanmps/www 外部目录,我的项目目录
/www/wwwroot 容器内部目录,这个是不能改变的

注意
本地 目录设置权限和用户组
chown -R www:www /home/lanmps/www
chmod -R 777 /home/lanmps/www
这个时候访问本机 127.0.0.1:80 就可以看到 你的项目站点了

6.4.2 方式二 使用IP端口连接

**

注意
使用IP端口连接,必须是固定IP才可以
**

docker run --name lanmps -p 80:80 -v /home/lanmps/www:/www/wwwroot -d foxiswho/nginx-php

例如 本机ip 为 192.168.1.122
那么在链接 数据库3306 的时候,ip设置为192.168.1.122,端口号 3306

注意
本地 目录设置权限和用户组
chown -R www:www /home/lanmps/www
chmod -R 777 /home/lanmps/www
这个时候访问本机 127.0.0.1:80 就可以看到 你的项目站点了

7. 容器命令

普通情况下容器创建时,该容器就会是启动状态,如果关机了,那么就要启动该容器

7.1 容器启动

先启动没有任何链接的容器,最后启动 有关联的容器

sudo docker start 容器名称sudo docker start redis
sudo docker start mysql
sudo docker start es
sudo docker start lanmps

7.2容器关闭

sudo docker stop 容器名称sudo docker stop es

7.3 容器重启

sudo docker restart 容器名称sudo docker restart es

7.4 容器状态

sudo docker status 容器名称
sudo docker status es

7.5 容器删除

sudo docker rm 容器名称

删除所有容器

docker rm $(docker ps -q -a)

7.6 进入容器内部

sudo docker exec -it lanmps /bin/bash

7.7 查看 正在运行的容器

sudo docker ps

7.8 查看 所有容器

sudo docker ps -a

8 docker 镜像命令

8.1 所有镜像

sudo docker images

8.2 删除镜像

sudo docker rmi lanmps

删除所有镜像

docker rmi $(docker images -q) 

9 docker 容器导入与导出

导出后再导入 的镜像会丢失所有的历史

9.1 导出 export

Export命令用于持久化容器(不是镜像)

#1.先查看 所有容器
sudo docker ps -a
#2.找到要导出容器 的 CONTAINER ID,然后执行命令
sudo docker export 容器CONTAINER ID > 导出地址文件名
即
sudo docker export 234wer2323dfdfdsfq > /home/export.tar

9.2 导入 import

cat /home/export.tar | sudo docker import - lanmps:latest

10 docker 镜像保存与加载

保存后再加载(saveed-loaded)的镜像没有丢失历史和层(layer)

10.1 保存 save

Save命令用于持久化镜像(不是容器)

#1.先查看 所有镜像
sudo docker images
#2.找到要保存的镜像名称
sudo docker save 镜像名称 > 保存地址文件名
即
sudo docker save lanmps > /home/save-lanmps.tar

10.2 加载

docker load < /home/save-lanmps.tar

11 访问项目站点

因为lanmps 设置的端口为80,那么就可以直接 在浏览器上 输入 127.0.0.1,
就可以看到 你的项目站点了

linux 下 docker NGINX+PHP+MYSQL+REDIS+Elasticsearch 开发环境搭建相关推荐

  1. 快速部署PHP Web环境(docker nginx php mysql redis)

    注:此项目已升级成 通用 docker 项目自动化部署脚本工具 先看最终效果,如下: 使用方式 debian/ubuntu/deepin: sudo wget -O /tmp/src.tar.gz h ...

  2. Qt在linux下无法输入中文,Ubuntu使用集成开发环境QT无法输入中文的解决方法

    QT Creator是轻量级集成开发环境,在Ubuntu系统操作中,使用QT时无法输入中文,遇到这种情况要如何处理呢?下面小编就给大家介绍下Ubuntu如何解决QT无法输入中文问题. 1 安装搜狗输入 ...

  3. linux下guide编译不了,全志R16编译环境搭建指南,全志R16_Tina SDK Quick Start Guide

    2. Tina SDK 目录结构 ├── tina │ ├── abi │ ├── app │ ├── bionic │ ├── build │ ├── device │ │ ├── softwinn ...

  4. 在windows环境下基于sublime text3的node.js开发环境搭建

    摘自:http://blog.sina.com.cn/s/blog_5a6efa330102vcla.html  (略有修改) 首先安装sublime text3,百度一堆,自己找吧.理论上subli ...

  5. pydev工程linux运行,Linux平台下Python的安装及IDE开发环境搭建

    转自http://blog.csdn.net/guoxiaojie_415/article/details/48108319 1.Python安装 Python有2.X和3.X两个版本,由于2.X的版 ...

  6. mac mysql配置jdk_mac开发环境搭建

    安装开发环境耗了我很长时间,留着以后自己看看吧 1.首先是下载AppStore中的Xcode 2.其次可以使用ruby -e "$(curl -fsSL https://raw.github ...

  7. 君君学Linux设备驱动第一天之概述及开发环境搭建

    一.设备驱动的作用:     1 计算机系统里面的软件和硬件是互相成就的,没有软件的硬件是废铁,没有硬件作为依托的软件是空中楼阁.     2 当应用软件工程师不想了解硬件底层的具体操作的时候,就需要 ...

  8. Linux平台下Python的安装及IDE开发环境搭建

    1.Python安装 Python有2.X和3.X两个版本,由于2.X的版本较稳定,使用者也较多,本文选择使用Python 2.X版本. 安装步骤: (1) 下载Python安装包:https://w ...

  9. Win10 下 Qt5.13.2+OpenCV4.5.1 开发环境搭建笔记

    写在前面 兜兜转转又回到了 OpenCV.因为项目需要,人脸识别+二维码解码,又回到了 OpenCV.先用 Win10 做功能验证,然后再转移到 Cortex-A8 的开发板. 首先感谢这篇文章的指导 ...

  10. linux下的nginx+php+mysql

    安装nginx+mysql+php需要的安装包: 1.mysql-5.0.56.tar.gz 2.php-5.2.17.tar.bz2 3.nginx-1.0.5.tar.gz 4.libpng-1. ...

最新文章

  1. 估值380亿美元!这家微软、谷歌、亚马逊都投资的AI初创公司什么来头?
  2. 5获取http请求头_获取托管者发送http请求报文的解决方案
  3. ubuntu下使用crontab定时器
  4. Html 教程(2)语法和属性
  5. c语言字符数组给字符指针,C语言常见有关问题之字符串数组和字符指针数组有关问题...
  6. 优化Linux下的内核TCP参数来提高服务器负载能力
  7. java中list去除空值_Java –从列表中删除所有空值
  8. vue报错 TypeError: merge is not a function
  9. Silverlight:CreateFromXAMLDownloader
  10. mock方法常用框架_什么是Mock测试?
  11. php框架tp3.2.3和js写的微信分享功能心得,分享的标题内容图片自定义
  12. 小程序小程序--定时器(定时任务、循环任务)
  13. python分析国家统计局数据网站人口结构、出生率、死亡率等基本情况
  14. el-select 默认选中值
  15. 【校招Web前端面试干货分享】
  16. 今天19:30 | 复旦大学青年副研究员许嘉蓉—《基于图数据的鲁棒机器学习 》
  17. 国内木兰造假!国外无一入选顶会!论两极分化下的编程语言研究
  18. c语言深度剖析(2)—有符号与无符号
  19. 使用Spark和Pig统计每秒钟微博数量
  20. 2019牛客暑期多校训练营(第一场)(B、C、E、F、H、I题待补、J)

热门文章

  1. asp.net中如何退出整个框架(frameset ),回到登录界面?
  2. C++ 默认构造函数的构建
  3. HTML5手机游戏将迎美好未来 .
  4. 领域驱动设计的个人理解
  5. 拓端tecdat|matlab贝叶斯隐马尔可夫hmm模型实现
  6. 拓端tecdat|R语言用Backfitting MCMC抽样算法进行贝叶斯推理案例
  7. java xml编译_IDEA将Maven项目中指定文件夹下的xml等文件编译进classes的方法
  8. 同事发来的文件是个html,逮到一个疑是感染html,htm,网页文件的木马
  9. python将嵌套列表转换为字典
  10. yolov4-tiny目标检测模型实战——学生姿势行为检测