• docker 学习1


    centos7 amdx64

    安装 Docker Engine-Community

    使用 Docker 仓库进行安装

    在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

    设置仓库

    安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

    $ sudo yum install -y yum-utils 
      device-mapper-persistent-data 
      lvm2

      

    使用以下命令来设置稳定的仓库。

    $ sudo yum-config-manager 
        --add-repo 
        https://download.docker.com/linux/centos/docker-ce.repo

      

    安装 Docker Engine-Community

    安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:

    $ sudo yum install docker-ce docker-ce-cli containerd.io

    如果提示您接受 GPG 密钥,请选是。

    启动 Docker

    $ sudo systemctl start docker

    设置 Docker自启动

    查看自启动服务

    $ systemctl list-unit-files | grep docker

      grep [string] 为查找对应内容

    设置docker服务自启动

    $ systemctl enable docker.service
    $ systemctl enable docker.socket

      

    安装php

    参考: https://www.runoob.com/docker/docker-install-php.html

    • php推荐使用fpm版本
    $ docker pull php:7.4-fpm
    • 创建php容器
    #-v 映射文件到宿主机 :前为宿主机文件目录; :后为容器文件目录; 这里把宿主机的网站根目录同时映射给nginx和php-fpm,便于管理
    $ docker run --name php7.4-fpm --restart always -v /home/dockers/master-nginx/wwwroot:/var/www -p 8000:9000 -d php:7.4-fpm

    安装nginx

    参考: https://www.runoob.com/docker/docker-install-nginx.html

    $ docker pull nginx
    • 创建nginx容器
    $ docker run -d --name master-nginx -p 80:80 -p 443:443 --restart always nginx
    •  把nginx的配置文件映射到磁盘方便管理; 并且让php和nginx互相通信, mysql也是同理
    #查看容器及容器id
    $ docker ps
    
    #复制nginx配置文件到实际磁盘中
    $ docker cp 容器id:/etc/nginx/conf.d /home/dockers/master-nginx/conf.d
    $ docker cp 容器id:/etc/nginx/nginx.conf /home/dockers/master-nginx/nginx.conf
    
    #删除nginx容器
    $ docker rm -f 容器id
    
    #创建wwwnet网络
    $ docker network create wwwnet
    
    #创建nginx容器
    #--name 容器名为master-nginx
    #-d 进程守护
    #--restart always 保持自动启动
    #-p 映射端口到宿主机 :前为宿主机端口; :后为容器端口
    #-v 映射文件到宿主机 :前为宿主机文件目录; :后为容器文件目录; 这里把宿主机的网站根目录同时映射给nginx和php-fpm,便于管理
    $ docker run -d --name master-nginx -p 80:80 -p 443:443 --restart always -v /home/dockers/master-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/dockers/master-nginx/conf.d:/etc/nginx/conf.d -v /home/dockers/master-nginx/wwwroot:/var/wwwroot nginx
    
    #wwwnet nginx容器添加到wwwnet网络
    #--alias nginx 为容器添加网络范围的别名为nginx
    $ docker network connect --alias nginx wwwnet master-nginx
    
    
    #wwwnet php容器添加到wwwnet网络
    #--alias php74 为容器添加网络范围的别名为php74
    $ docker network connect --alias php74 wwwnet php7.4-fpm
    
    
    #拉取busybox镜像,该镜像有ping功能可以测试网络是否互通
    $ docker pull busybox
    
    
    #创建busybox1容器
    #--network wwwnet 容器添加到wwwnet网络
    #--network-alias bx1 为容器添加网络范围的别名为bx1
    $ docker run -itd --network wwwnet --network-alias bx1 --name busybox1 busybox
    $ docker attach busybox1
    $ ping nginx
    #如果通信成功则说明没问题

      

    安装Docker管理工具portainer

    $ docker pull portainer/portainer
    • 使用docker volume 进行储存

    $ docker volume create portainer_data
    $ docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
    • 使用磁盘空间 进行储存

    $ mkdir /home/dockers
    $ mkdir /home/dockers/portainer_data
    $ docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /home/dockers/portainer_data:/data portainer/portainer

    docker run 命令参数说明

    --name 为容器命名为change-nginx
    -v 挂载文件,这里是把当前宿主机的目录 挂载到容器的项目目录上; 多个文件的话,就写多个-v参数
    -p 端口 666:80 代表把宿主机的666端口映射到容器的80端口; 多个端口的话,就写多个-p参数
    --link 代表把nginx容器和php-fpm容器 相关联  一般是 (--link php容器名:新命名)[此方法不推荐使用,直接用docker network桥接方式让容器间互通]
    -d 后台守护进程
    --network NetworkName 容器添加到NetworkName网络
    --network-alias aliaName 为容器添加网络范围的别名为aliaName(注意,docker的默认bridge网络是无法添加别名的)

    docker php+nginx配置参考: https://blog.csdn.net/qq_35765928/article/details/87715448

    docker 容器间通信配置参考: https://my.oschina.net/thinwonton/blog/2993309

  • 相关阅读:
    MySQL Unknown table engine 'FEDERATED''
    Meta http-equiv属性与HTTP头的Expires中(Cache-control)详解
    EChart 标题 title 样式,x轴、y轴坐标显示,调整图表位置等
    手机端个人信息模板
    <c:forEach>, <c:forTokens> 标签
    html select 可输入 可编辑
    js写评价的星星
    指数映射
    刚体转动的稳定性
    物理引擎中的刚体转动2
  • 原文地址:https://www.cnblogs.com/hcpzhe/p/12088687.html
Copyright © 2020-2023  润新知