一:安装docker
1:安装所需的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
2:由于官方源地址比较慢,可以自己配置源地址,这里使用阿里云源地址
yum-config-manager --add-repo http:
3:查询docker版本 ,可以根据自己需要的版本安装
yum list docker-ce.x86_64 --showduplicates | sort -r
4:安装 Docker Engine-Community
yum install docker-ce docker-ce-cli containerd.io #安装最新版本
yum install docker-ce-18.06.3 docker-ce-cli-18.06.3 containerd.io #安装18.06.3版本的docker
5:启动docker
[root@ecs-b8ca-0817460 ~]
[root@ecs-b8ca-0817460 ~]
[root@ecs-b8ca-0817460 ~]
[root@ecs-b8ca-0817460 ~]
[root@ecs-b8ca-0817460 ~]
root 5007 0.1 0.4 668204 68016 ? Ssl 21:02 0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 5152 0.0 0.0 112724 988 pts/3 S+ 21:03 0:00 grep --color=auto docker
二:安装mysql
访问: https://hub.docker.com 查看mysql的版本也可以通过docker search mysql搜索镜像,根据需要安装mysql版本,例如要安装mysql 5.7.31 docket pull mysql:5.7.31,我这里安装mysql最新镜像
[root@ecs-b8ca-0817460 ~]
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 10013 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3664 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 733 [OK]
percona Percona Server is a fork of the MySQL relati… 512 [OK]
安装最新mysql镜像,latest为最新的版本,下载速度一般,需要耐心等待
[root@ecs-b8ca-0817460 ~]
Using default tag: latest
latest: Pulling from library/mysql
d121f8d1c412: Downloading [==============================> ] 16.76MB/27.09MB
f3cebc0b4691: Download complete
1862755a0b37: Download complete
489b44f3dbb4: Download complete
690874f836db: Download complete
安装完成后,使用 docker images 查看安装到本地的镜像,可以按照此步骤安装php和nginx
运行:docker pull nginx 和 docker pull php:7.4-fpm
查询pull本地的镜像
[root@ecs-b8ca-0817460 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
php latest 8939aaed79f9 18 hours ago 405MB
nginx latest 7e4d58f0e5f3 3 weeks ago 133MB
mysql latest e1d7dc9731da 3 weeks ago 544MB
启动mysql nginx php
docker run :创建一个新的容器并运行一个命令要注意,
--name 容器名称
-v 本地目录:容器目录 //目录映射
-p 本地端口:容器端口 //端口映射
-m 设置容器使用内存最大值
启动nginx
在/user/local 目录下新建:
www 目录 映射到 /usr/share/nginx/html
docker run --name php-web -p 9000:9000 -v /usr/local/nginx/html:/www -d php:7.4-fpm
conf 目录 映射到 /etc/nginx
conf/conf.d目录 映射到/etc/nginx/conf.d
logs 目录映射到 /var/log/nginx
--link 设置 nginx容器和php容器网络互通
docker run -d --name nginx-web -p 80:80 -v /usr/local/nginx/www:/usr/share/nginx/html -v /usr/local/nginx/conf:/etc/nginx -v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d -v /usr/local/nginx/logs:/var/log/nginx --link php-web:php nginx
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cc53a678091d nginx "/docker-entrypoint.…" 49 minutes ago Up 4 seconds 0.0.0.0:80->80/tcp nginx-web
注意:docker ps 时,如果nginx不存在,在需要查看log日志 docker logs 容器id //新建容器的时候会返回容器ID
映射配置文件的目录 在新建容器后,需要自己在主机目录 /usr/local/nginx/conf 目录新建 nginx.conf 在/usr/local/nginx/conf/conf.d 目录新建default.conf 以及 conf 目录需要的文件,也可以拷贝把容器配置文件拷贝到主机的映射目录:
如果进入不到容器内,则可以按照最简单的方法新建容器并启动,把配置文件拷贝出来,在删除
docker run -d --name nginx-web -p 80:80 nginx
docker cp cc53a678091d:/etc/nginx /usr/local/nginx/conf
配置php和nginx
编辑:/usr/local/nginx/conf/conf.d/default.conf
/www 目录是php解析目录,在运行php容器的时候 已经映射到/usr/local/nginx/html 了 配置的时候 要配置容器的目录,要不会报错。
fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name;
index index.php index.html;
设置容器时区:
进入容器
docker exec -it cc53a678091d /bin/bash
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
查看容器ip:
[root@ecs-b8ca-0817460 ~]
[root@ecs-b8ca-0817460 ~]
[root@ecs-b8ca-0817460 ~]
启动mysql:
在 /usr/local/mysql
新建:conf logs mysqldata mysql-files
docker run --name mysql-web -v /usr/local/mysql/conf:/etc/mysql -v /usr/local/mysql/logs:/logs -v /usr/local/mysq