Docker安装各种服务
Docker 安装 Nginx
获取最新版 Nginx 镜像
1 | docker pull nginx:latest |
查看本地镜像
使用以下命令来查看是否已安装了 Nginx
1 | docker image |
运行容器
1 | docker run --name nginx-test -p 8080:80 -d nginx |
- –name nginx-test:容器名称。
- -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
- -d nginx: 设置容器在在后台一直运行。
安装成功
最后我们可以通过浏览器可以直接访问 8080 端口的 nginx 服务
Docker 安装 Node.js
获取最新版 node 镜像
1 | docker pull node:latest |
查看本地镜像
1 | docker image |
运行容器
1 | docker run -itd --name node-test node |
- –name node-test:容器名称。
安装成功
最后进入查看容器运行的 node 版本
1 | docker exec -it node-test /bin/bash |
Docker 安装 PHP
获取 PHP
1 | docker pull php:5.6-fpm |
等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为php,标签为5.6-fpm的镜像
1 | docker images |
Nginx + PHP 部署
启动 PHP
1 | docker run --name myphp-fpm -v ~/nginx/www:/www -d php:5.6-fpm |
- –name myphp-fpm : 将容器命名为 myphp-fpm
- -v ~/nginx/www:/www : 将主机中项目的目录 www 挂载到容器的 /www
创建 ~/nginx/conf/conf.d 目录
1 | mkdir ~/nginx/conf/conf.d |
在该目录下添加 ~/nginx/conf/conf.d/runoob-test-php.conf
文件,内容如下
1 | server { |
- php:9000: 表示 php-fpm 服务的 URL,下面我们会具体说明
- /www/: 是 myphp-fpm 中 php 文件的存储路径,映射到本地的 ~/nginx/www 目录
启动 nginx
1 | docker run --name runoob-php-nginx -p 8083:80 -d \ |
- -p 8083:80: 端口映射,把 nginx 中的 80 映射到本地的 8083 端口。
- ~/nginx/www: 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。
- ~/nginx/conf/conf.d: 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。
- –link myphp-fpm:php: 把 myphp-fpm 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm
接下来我们在 ~/nginx/www 目录下创建 index.php,代码如下
1 |
|
浏览器打开 http://127.0.0.1:8083/index.php,显示如下
Docker 安装 MySQL
拉取 MySQL 镜像
1 | docker pull mysql:latest |
查看本地镜像
1 | docker image |
运行容器
1 | docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql |
- -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
- MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码
安装成功
通过 docker ps
命令查看是否安装成功
启动 MySQL的 Container
1 | docker start 73de1fb9f4f4 # mysql对应的CONTAINER ID |
进入 MySQL 容器
1 | docker exec -it mysql-test bash |
成功进入bash环境后,通过如下命令进入
1 | mysql -h localhost -u root -p |
Docker 安装 Redis
拉取最新版的 Redis 镜像
1 | docker pull redis:latest |
查看本地镜像
1 | docker images |
运行容器
安装完成后,我们可以使用以下命令来运行 redis 容器
1 | docker run -itd --name redis-test -p 6379:6379 redis |
- -p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务
安装成功
接着我们通过 redis-cli 连接测试使用 redis 服务
1 | docker exec -it redis-test /bin/bash |
Docker 安装 MongoDB
拉取最新版的 MongoDB 镜像
1 | docker pull mongo:latest |
查看本地镜像
1 | docker images |
运行容器
1 | docker run -itd --name mongo -p 27017:27017 mongo --auth |
- -p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
- –auth:需要密码才能访问容器服务
安装成功
接着使用以下命令添加用户和设置密码,并且尝试连接
1 | docker exec -it mongo mongo admin |
1 | # 创建一个名为 admin,密码为 123456 的用户。 |