1、卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、docker安装开始
1、设置存储库
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
2、安装docker(二者选其一)
yum安装:
yum install docker-ce docker-ce-cli containerd.io
curl安装:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
3、启动docker
systemctl start docker
docker version //查看当前版本
3、拉取相关镜像
1、首先可以先查找需要的镜像
docker serach name //查找相关镜像 name代表镜像名
例子:
查找nginx的镜像,选择自己需要的版本(注意图片选取部分代表是官方认证的)
2、拉取镜像
docker pull name:版本 //拉取相关镜像 name代表镜像名 版本是拉取的镜像版本 默认是latest 最新版
我再写的详细点吧,作参考就行,具体装的时候还是要装项目需要的版本。
php-fpm
docker pull php:7.4-fpm
nginx
docker pull nginx
redis
docker pull redis:3.2
mysql
docker pull mysql:5.6
4、构建容器
构建mysql容器
docker run -p 3306:3306 --name mysql -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/logs:/logs -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6
注:-v 本地路径:容器路径
构建redis容器
docker run --name redis -p 6379:6379 -v /data/redis/conf/:/etc/redis/redis.conf -d redis:3.2
构建php-fpm容器
docker run -p 9000:9000 --name php-fpm -v /var/www:/var/www/html -v /var/php:/usr/local/etc/php --link mysql:mysql --link redis:redis --privileged=true -idt php:7.4-fpm
构建nginx容器
docker run -p 80:80 --name nginx --privileged=true -v /var/nginx:/usr/share/nginx/html -v /var/www:/var/www/html -v /var/nginx/log:/var/log/nginx --link php-fpm:php -d nginx:latest
5、进入容器
进入php-fpm容器
docker exec -ti php-fpm /bin/bash
安装php扩展
docker-php-ext-install pdo pdo_mysql
docker-php-ext-install redis
redis安装报错,手动下载wget pecl.php.net/get/redis-3.1.0.tgz
,解压tar -zxvf redis-3.1.0.tgz
并cp –r 下载目录 /usr/src/php/ext/redis
,然后再执行docker-php-ext-install redis
,最后可以php -m | grep redis
测试扩展是否安装成功
nginx容器的conf.d中项目配置文件
server {
listen 80;
server_name localhost; //自己项目域名
root /var/www/html/项目路径/;
location / {
index index.html index.htm index.php l.php;
autoindex on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000; //这里的ip要换成容器名
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
一定要注意里面的ip换成容器名
6、提交容器生成新的镜像
Docker commit –a 作者 –m 提交信息 容器ID 新的镜像名