zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    centos go语言 开启代理 国内镜像
    Docker给MongoDB设置用户密码
    ubuntu镜像一般apt-get源地址都是在国外导致在构建时因为源地址问题导致下载速度极其得慢
    在centos7安装nodejs并升级nodejs到最新版本
    使用express创建简单web服务器
    关于docker的mongo镜像的部署
    Python:函数定义
    Python:if-while-for
    Python:运算符
    Python:标准数据类型6种
  • 原文地址:https://www.cnblogs.com/hcpzhe/p/12088687.html
Copyright © 2011-2022 走看看