一、安装docker

首先我们先来了解一下什么是docker。

docker是一个虚拟化的技术,基于 Linux 内核,是将进程进行封装隔离,由于隔离的进程独立于宿主机和其它的隔离的进程,因此也可以称为容器。很多人把docker理解为虚拟机,其实不是的,因为它不需要进行硬件虚拟以及运行完整操作系统等额外开销的,docker的出现也是为了解决在各种复杂的环境下不需要做任何的修改还可以保证程序正常稳定的运行,也就是环境一致性的问题,当然还有kubernets,简称k8s,是把docker容器的管理和编排做成自动化,下一篇文章中在对k8s进行介绍。

接下来进入正题开始安装docker

1.卸载旧版的docker

yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine

2.安装依赖包

yum install -y yum-utils \device-mapper-persistent-data \lvm2

3.更换yum源,更换为国内镜像,下载更快

yum-config-manager \--add-repo \https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

4.安装docker

yum-config-manager --enable docker-ce-nightly    #获取夜间通道的存储库
yum makecache fast   #更新yum缓存
yum install -y docker-ce   #安装docker

5.启动docker,建立docker用户组并将当前用户加入用户组

systemctl start docker
groupadd docker #创建用户组
usermod -aG docker $USER   #将当前用户加入用户组

6.添加docker镜像加速器,在/etc/docker/daemon.json 中写入如下内容(如果文件不存在就创建一下)

{"registry-mirrors": ["https://dockerhub.azk8s.cn","https://reg-mirror.qiniu.com"]
}

7.重启服务

systemctl daemon-reload
systemctl enable docker
systemctl restart docker

来测试一下docker是否安装成功

docker run hello-world

当出现了如图所示,证明安装成功了

二、使用docker配置php运行环境

首先,要创建一个私有网络,不创建也可以配置环境,但是要将端口暴漏在外网,容器之间使用--link参数来连接,这样是不安全的,创建一个私有的网络只需要暴露出80端口,这样更加的安全。

1.创建私有网络

docker network create lnmp

这样就创建了一个名称为lnmp的私有网络

2.配置mysql容器

docker run --network lnmp --name mysql -v /home/lnmp/mysql/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d --privileged=true mysql### 命令说明:
--network :将mysql容器在私有网络中运行
--name 给容器指定别名
-v /home/lnmp/mysql/:/var/lib/mysql:将主机当前用户目录下的mysql文件夹挂载到容器的/var/lib/mysql 下,在mysql容器中产生的数据就会保存在本机mysql目录下
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
-d 后台运行容器
--privileged=true  可能会碰到权限问题,需要加参数

直接运行一个容器,docker会自动执行pull这个镜像文件,这样mysql就配置成功了

3.配置nginx容器

首先先运行一个nginx容器

docker run --name mynginx -p 80:80 -d -v /home/lnmp/nginx/html:/usr/share/nginx/html -d nginx

cd到home/lnmp/nginx文件夹复制nginx配置文件目录

cd /home/lnmp/nginx
docker cp mynginx:/etc/nginx/conf.d conf.d

此时就会发现已经将容器中的nginx配置文件夹以及配置文件复制下来了

现在我们就删除之前创建的nginx容器重新创建

docker stop mynginx #停止容器
docker rm mynginx #删除容器
docker run --name mynginx -p 80:80 --network lnmp -v /home/lnmp/nginx/html:/usr/share/nginx/html -v  /home/lnmp/nginx/conf.d:/etc/nginx/conf.d/ -d nginx

然后我们cd到/home/lnmp/nginx/html文件夹下,创建一个index.html文件随便写点内容访问试一下

cd /home/lnmp/nginx/html
vim index.html

写好之后访问服务器ip地址

当看到这个页面,nginx容器也就运行成功了

这里我们介绍一些docker容器操作的简单命令

docker ps -a                       # 查看正在运行的容器
docker ps                          # 查看容器
docker stop mynginx                  # 停止正在运行的容器
docker start mynginx                 # 启动一个已经停止的容器
docker restart mynginx                 # 重启一个容器
docker rm mynginx                    # 删除容器

4.配置php容器

和nginx一样的,我们先运行一个php容器来复制php的配置文件

注意:需要不同版本的php在最后php:后面加上版本号,例如需要php7.1的版本的镜像,最后就应该写php:7.1-fpm

docker run --name myphp --network lnmp -d php:7.1-fpm

cd到/home/lnmp/下创建php文件夹,进入php文件夹复制配置文件

cd /home/lnmp/
mkdir php
cd php/
docker cp myphp:/usr/local/etc/php-fpm.d/www.conf www.conf

接下来复制php.ini文件,先进入容器解压文件在进行复制

# 先进入容器
docker exec -it myphp bash
cd /usr/src/ # 进入文件夹
xz -d php.tar.xz #解压xz文件
tar -xvf  php.tar #解压tar文件

解压完毕后, php.ini-production就有了,我的路径是/usr/src/php-7.1.32/php.ini-production 这个路径是看解压后的路径

这时我们来复制php.ini文件(注意:这一步要在容器外执行,上一步解压完后直接执行exit可退出容器)

docker cp myphp:/usr/src/php-7.1.32/php.ini-production php.ini

成功之后我们就会看到php文件夹下有两个配置文件了

我们删除这个容器,来重新运行容器

docker stop myphp
docker rm myphp
docker run --name myphp --network lnmp -v /home/lnmp/nginx/html:/var/www/html -v /home/lnmp/php/www.conf:/usr/local/etc/php-fpm.d/www.conf -v /home/lnmp/php/php.ini:/usr/local/etc/php/php.ini -d php:7.1-fpm

我们来验证一下php容器是否成功

5.修改nginx配置文件

cd到/home/lnmp/nginx/conf.d文件夹下修改配置文件,复制一下内容到配置文件中

server {listen       80;server_name  _;root /usr/share/nginx/html;index index.php index.html index.htm;#charset koi8-r;#access_log  /var/log/nginx/log/host.access.log  main;location / {#root   /usr/share/nginx/html;#index  index.php index.html index.htm;try_files $uri $uri/ =404;}error_page  404  /404.html;location = /40x.html {root    /user/share/nginx/html;}# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000#location ~ \.php$ {root           /var/www/html/;fastcgi_pass   myphp:9000;fastcgi_index  index.php;
#        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;include        fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one#location ~ /\.ht {deny  all;}
}

配置文件的关键点在于解析php文件使用的是php容器 ,如果你的php容器名称不一样的话,可以更改fastcgi_pass   myphp:9000;,更改为fastcgi_pass 容器名:9000。

重启nginx容器

docker restart mynginx

cd进入/home/lnmp/nginx/html文件夹下创建index.php文件写入内容

<?phpphpinfo();
?>

打开浏览器在服务器ip地址后加上index.php

看到了熟悉的phpinfo页面配置成功了。

我也是学习docker的新手,配置环境的只是第一步,成功后来写的笔记,中间的流程肯定还可以省略,比如使用dockerfile,更加的便捷,后来学习到k8s的时候,也会来记录笔记的,也希望有缘人能够和我共同学习进步

centos7安装docker并配置php运行环境相关推荐

  1. centos7安装docker并配置镜像加速

    Centos7安装docker 并配置镜像加速 1.如果系统上之前有安装过docker 那么就需要先执行下面的命令 删除旧版本docker sudo yum remove docker \docker ...

  2. 安装JDK以及配置Java运行环境

    安装JDK以及配置Java运行环境 1.JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2 ...

  3. CentOs7 安装Docker 并配置代理访问外网

    提要 环境: Linux version 3.10.0-693.el7.x86_64 安装docker的一部分步骤 步骤 1.配置yum代理 vim /etc/yum.conf proxy=http: ...

  4. CentOS7安装Docker及配置国内镜像源

    环境CentOS7 一.Docker docker安装 https://docs.docker.com/get-docker/ https://docs.docker.com/engine/insta ...

  5. CentOS7安装Docker和配置Docker Compose

    文章目录 一.前提条件和注意事项 二.删除旧版本的 Docker(可选) 三.安装 Docker 第1步:安装必要的一些系统工具 第2步:添加软件源信息 第3步:编辑文件 第4步:将软件包信息提前在本 ...

  6. centos7安装docker并配置阿里云镜像

    文章目录 一.安装docker 准备工作: 主要步骤: 二.配置阿里云镜像 1.依次输入以下四条命令: 2.测试 错误记录 一.安装docker 准备工作: CentOS7能上外网 yum -y in ...

  7. centos7安装docker并配置daocloud

    1.查看linux发行版,内核 [root@docker~]# cat /etc/redhat-release  #查看版本号 CentOS Linux release 7.1.1503 (Core) ...

  8. linux设置docker自动启动,CentOS7安装Docker配置服务端和容器自启动

    接上一篇,在VirtualBox上安装配置好了CentOS7,继续在这个虚拟机上装好docker并总结一下使用到的常用功能. 安装Docker 安装直接参考官网来安装就OK,没有遇到什么问题,值得注意 ...

  9. Centos7 安装Docker(v2021 version 20.10.5) 并通过docker-compose运行TiDB集群

    Centos7 安装Docker(v2021 version 20.10.5) 卸载docker旧版 注意:新系统不用卸载 yum remove docker \docker-client \dock ...

最新文章

  1. idea main java.lang.ClassNotFoundException
  2. Java并发编程:深入剖析ThreadLocal
  3. pymysql 写入数据
  4. Pandas的DataFrame输出截断和省略问题
  5. 如何看待 2020 届校招算法岗「爆炸」的情况?英雄所见略同
  6. 关于NGINX下开启PHP-FPM 输出PHP错误日志的设置(已解决)
  7. 汽车LED驱动器MPQ3326替代替换
  8. 安装旧版本gcc的简便方法,软件包管理命令update-alternatives使用
  9. Mac双开微信客户端方法
  10. 网站建设的一些基本教程操作
  11. 七层代理与四层代理区别
  12. 以太坊Whisper协议
  13. PHP语法基础篇——除法取整和取余数
  14. 中期国际量化:安卓手机如何下载mt4及MT4一些功能介绍
  15. unity shader实现中枪散红效果,(参考别人算法)
  16. python二进制和图片转换
  17. MKR:协同过滤算法效果不佳,知识图谱来帮忙
  18. 向量欧氏距离 点积 余弦相似度 余弦距离
  19. 利用搜搜的问问做外链小技巧
  20. Java core 包_JD-Core

热门文章

  1. 【算法笔记】算法的平均时间复杂度A(n)的公式及示例
  2. java线程安全的方法_Java实现线程安全的方式
  3. CentOS 7 安装 net-tools(解决无 ifconfig)
  4. 系统如何使用键盘快捷关机
  5. 五种糟糕的代码实践,程序员注意避坑
  6. [HTML5点滴]web之HTTP 推送那些事
  7. IDEA2019更换壁纸
  8. notepad++ smali语法高亮模板分享
  9. 视觉SLAM——二维三维几何、三维空间刚体变换
  10. 用计算机程序计算兴利库容,兴利调节计算的计算机自动化实现.pdf