Centos8安装docker
Linux 系统 Redhat 8与 Centos 8 以后默认 是安装 podman 作为容器管理工具,但是由于 podman 与 docker 的依赖 有冲突,安装了 podman 的 系统无法直接安装 docker。 如果需要安装 docker 需要先删除 podman 及 buidlah 。 然后再安装 docker。 具体步骤如下:
1.进到 docker 官网 ,根据官网指南找到 相应系统的安装 源,redhat 和 centos x86 系统安装指南都可以使用下面这个链接:https://docs.docker.com/engine/install/centos/
2.安装 yum-utils ,如果是非 root 用户,可能需要有 sudo 权限,使用命令:
sudo yum install -y yum-utils
3. 输入下面的命令,生成 docker.repo 仓库文件:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4.卸载 podman 及 buildah
podman 与 docker依赖的冲突问题 就可以成功安装 docker
sudo yum erase -y pomdan
sudo yum erase -y buildah
5.输入命令安装 docker engine
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
6. 启动docker容器服务
sudo systemctl start docker
Centos8安装docker-compose
官方文档:https://docs.docker.com/compose/install/
# 下载docker compose(Linux版本)
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 增加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 成功检查
docker-compose -v
centos8 docker-compose安装lnmp
执行docker compose准备步骤
1、准备好需要修改的配置文件(比如nginx.conf等),如果需要自己构建Dockerfile文件,也请准备好Dockerfile
2、在 docker-compose.yml 中定义好各个容器的相关配置
3、执行docker-compose up -d命令,docker compose会帮你完成一整套拉取镜像/构建镜像,启动容器等操作。
docker-compose.yml是docker compose用来配置容器应用的配置文件,默认就叫docker-compose.yml,最好是放在当前操作的目录下,当然也可以单独指定文件路径。
docker compose的常用命令
#启动并后台运行所有的服务
docker-compose up -d
#列出项目中目前的所有容器
docker-compose ps
#停止某个服务
docker-compose stop 服务名
#启动某个服务
docker-compose start 服务名
#停止并删除容器、网络、卷、镜像
docker-compose down
nginx配置准备
# nginx挂载目录(目录根据自身情况修改)
mkdir /opt/lnmp && cd /opt/lnmp && mkdir -p mysql/data
mkdir {nginx,www} && cd nginx && && mkdir conf && cd conf
# nginx默认配置文件
vi default.conf
server { listen 80; root /usr/share/nginx/html; index index.html index.htm index.php; # 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; } location / { index index.html index.htm index.php ; try_files $uri $uri/ /index.php?$query_string; autoindex on; } location ~ \.php$ { #php73是容器命名 fastcgi_pass php73:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; } }
在docker-compose.yml文件中定义好我们需要的nginx,php和mysql相关的配置,如下:
cd /opt/lnmp
vi docker-compose.yml
#定义docker compose yml版本 version: "3" #定义我们的服务对象 services: #自定义的服务名称 nginx: #镜像名称,默认拉取本地镜像,没有的话从远程获取 image: nginx:latest #自定义容器的名称 container_name: c_nginx #将宿主机的80端口映射到容器的80端口 ports: - "80:80" #将宿主机的~/lnmp/www目录和容器的/usr/share/nginx/html目录进行绑定,并设置rw权限 #将宿主机的~/lnmp/nginx/conf/default.conf和容器的/etc/nginx/conf.d/default.conf进行绑定 volumes: - /opt/lnmp/www/:/usr/share/nginx/html/:rw - /opt/lnmp/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf #设置环境变量,当前的时区 environment: TZ: "Asia/Shanghai" #容器是否随docker服务启动重启 restart: always #容器加入名为lnmp的网络 networks: - lnmp php: image: bitnami/php-fpm:7.3 container_name: php73 volumes: - /opt/lnmp/www/:/var/www/html/:rw restart: always networks: - lnmp mysql: image: mysql:5.7 container_name: mysql57 ports: - "3306:3306" volumes: - /opt/lnmp/mysql/data:/var/lib/mysql/:rw restart: always networks: - lnmp environment: MYSQL_ROOT_PASSWORD: "mhsj.net" TZ: "Asia/Shanghai" networks: #创建了一个自定义的网络叫做lnmp lnmp:
执行docker-compose up -d命令
测试mysql连接
cat /opt/lnmp/www/index.php
<?php try { $pdo = new PDO("mysql:host=mysql57","root","hellowin995120"); $pdo = null; print "连接成功"; } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); }
版权声明
本站《作品展示》类文章均为原创,转载必须注明出处,技术分享类文章部分来源于网络,版权归原作者所有,若侵权请留言。