zoukankan      html  css  js  c++  java
  • docker镜像&nginx配置

    什么是容器:
    ​ 就是在隔离的环境运行的一个进程
     
    容器的特点:公用宿主机的内核 运行服务 损耗少 启动快 性能高
    容器的虚拟化: 不需要硬件支持 不需要模拟硬件,共用宿主机的内核  启动时间秒机(开机自启动流程)
     
    docker主要有组件:镜像  容器  仓库  网络  存储
    启动容器必须要有一个镜像 仓库中只存储镜像
    容器------镜像---------仓库
    ubuntu
    ​ 标配的软件安装:curl -o
    查看指令文件位置:chroot which xxxx
    ​       find -name "12344"
     
    启动镜像:docker run -d -p  80:80 nginx:1.14
    ​ run  创建并运行一个容器
    ​ -d 放在后台
    ​ -p端口映射
    ​ -v源地址(宿主机):目标地址(容器)
    ​ :docker run -it --name   cemtos6 centos:6.9
     
    镜像:包含linux发行版系统文件,nginx软件
    容器:基于镜像,启动一个进程  文件
    docker container
    docker image
     
    挂载素主机
    ​ docker run -d -p 80:80 -v /data:/usr/share/nginx/html nginx:latest
    ​ 
    docker run -d -p 80:80 -v /data:/usr/share/nginx/html nginx:latest
      238  ls /data/
      239  cd /data/
      240  rz -E
      241  ll  242  unzip xiaoniaofeifei.zip
     
     
    设置容器密码:echo ‘123’|password --stdin root
    临时退出:ctrl+p 松手后 ctrl+q 
    重新进入 docker attach uid 
    手动镜像制作:
    1. docker run -it -p 1022:22 centos:6.9
    2. yum install openssh-server -y 
    3. service sshd start  启动
    4. echo ‘123’|password --stdin root  设置容器密码
    5. docker commit uid(镜像的) centos_ssh:vl   提交为镜像
    6. 测试 docker run -d -p 1023:22 centos_ssh:vl /usr/sbin/sshd -D  启动并夯住进程
    7. 寻找下载的软件包:yum provides sshd
     
     
     
     
     
    手动制作bookManagerSystem的docker:
      3  pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django
        4  cd /opt/
        5  wget  http://www.qstack.com.cn/bookManageSystem.zip
        6  ls
        7  unzip bookManageSystem.zip
        8  ls
        9  cd bookManageSystem
       10  ls
       11  python manage.py runserver 0.0.0.0:8080
       12  ls
       13  vim bookManageSystem/settings.py
       14  vi bookManageSystem/settings.py
       15  yum install vim
       16  yum install vi
       17  cat /etc/os-release
       18  apt-get update
       19  echo 'deb http://mirrors.163.com/debian/ stretch main non-free contrib
    deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
    deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
    deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
    deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
    deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
    deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
    deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib' >/etc/apt/sources.list
       20  apt-get update
       21  apt-get install vi -y
       22  apt-get install vim -y
       23  ls
       24  vim bookManageSystem/settings.py
       25  python manage.py runserver 0.0.0.0:8080
     
     
     
     
     
    装图书管理系统:
    a:启动一个基础容器
    docker run -it -p 8080:8080  python:3.6 /bin/bash
    b:容器部署bms项目
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django
    cd /opt/
    wget  http://www.qstack.com.cn/bookManageSystem.zip
    unzip bookManageSystem.zip
    cd bookManageSystem
    echo 'deb http://mirrors.163.com/debian/ stretch main non-free contrib
    deb http://mirrors.163.com/debian/ stretch-updates main non-free contrib
    deb http://mirrors.163.com/debian/ stretch-backports main non-free contrib
    deb-src http://mirrors.163.com/debian/ stretch main non-free contrib
    deb-src http://mirrors.163.com/debian/ stretch-updates main non-free contrib
    deb-src http://mirrors.163.com/debian/ stretch-backports main non-free contrib
    deb http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib
    deb-src http://mirrors.163.com/debian-security/ stretch/updates main non-free contrib' >/etc/apt/sources.list
    apt-get update
    apt-get install vim -y
    vim bookManageSystem/settings.py
    python manage.py migrate
    python manage.py runserver 0.0.0.0:8080
    c:把部署好bms项目的容器提交为镜像(id为容器id)查询方式:docker ps -a
    docker commit 3e3313968bf7 bms:v1
    d:测试
    docker run -d -p 8080:8080 bms:v1 python /opt/bookManageSystem/manage.py runserver 0.0.0.0:8080
     
    下载一个 yum list|grep
    注意:bash-completion 包 需要重新登录生效
    删除镜像:docker rmi    docker image rm
    删除容器:启动容器:doker rm    批量:docker rm -f `docker ps -a -q`

    docker run -p 80:80 -v /data:/data  -v oldboy:/opt
    注意:-v可以多次使用  卷(oldboy不存在会自己创建一个)
     
     
    自动创建镜像dockerfile(建议目录固定,例如:opt/dockerfile):
    ​ 优势:利于传输
    1. FROM   基础镜像的名称
    2. RUN    安装步骤(run后面可以接多条命令)
    3. CMD    容器运行的初始命令
    4. 举例:
       1. mkdir centos6.9_sh
       2. cd centos6.9_sh
       3. vim dockerfile
          网络加速:RUN  echo '192.168.11.210 mirrors.aliyun.com'  >>/etc/hosts &&
          curl -o /etc/yum.repos.d/CentOS-Base.repo http://192.168.11.210/repo/Centos-6.repo &&
          yum install openssh-server -y
         
          FROM centos:6.9
          RUN yum install openssh-server -y
          RUN service sshd start
          RUN echo '123'|passwd --stdin root
          CMD ["/usr/sbin/sshd","-D"]
       4. docker image build -t centos_ssh:v2  .(可以绝对路径 或者是绝对路径)  构建镜像
       5.
    5. 测试 docker run -d -p 1022:22 centos_ssh:v2
    6. 测试 ssh root@10.0.0.58
     
    持久化加在卷中:
    docker run -d -P nginx :latest  随机映射端口
    重新进入正在运行的容器 docker exec  -t 容器uid  /bin/bash
     
    还原出厂设置:
    1. systemctl stop docker
    2. cd /var/lib/docker
    3. rm -fr *
    4. systemctl start docker
    5. 导入镜像,docker load -i docker_centos_ssh
    镜像属性变该:
    docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry  registry
     
     
    仓库上传镜像:
    1. 给镜像打标签:
       docker tag centos-ssh:v3  10.0.0.0.58:5000/oldboy/centos_ssh:v3
    2. 修改配置文件(如果遇到https问题):
       vim  /etc/docker/daemon.json
       {
       ​ "insecure-registries":["10.0.0.58:5000"]
       }
    3. systemctl restart docker  重启docker
    4. docker push 10.0.0.58:5000/oldboy/mysql:5.7    提交
      
     
     
    上传项目:
    593  2019-04-21-16:59:06 python ![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py runserver 0.0.0.0:8080
      594  2019-04-21-16:59:48 ls
      595  2019-04-21-17:00:08 vim oldboy/local_![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)settings.py
      596  2019-04-21-17:05:35 python ![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py migrate
      597  2019-04-21-17:06:56 pip install mysqlclient
      598  2019-04-21-17:08:16 yum install mysql-devel -y
      599  2019-04-21-17:08:31 pip install mysqlclient
      600  2019-04-21-17:09:18 yum install python-devel -y
      601  2019-04-21-17:09:27 pip install mysqlclient
      602  2019-04-21-17:09:55 python ![img](file:///C:Users91178AppDataLocalTemp\%W@GJ$ACOF(TYDYECOKVDYB.png)manage.py migrate
      603  2019-04-21-17:10:46 ls
      604  2019-04-21-17:11:33 pip install uwsgi
      605  2019-04-21-17:13:03 which uwsgi
      606  2019-04-21-17:14:08 vim uwsgi.ini
      607  2019-04-21-17:22:03 uwsgi --ini uwsgi.ini
      608  2019-04-21-17:22:14 netstat -lntup
      609  2019-04-21-17:29:48 history
     
     

    安装nginx:
    yum install wget -y
    wget -c https://nginx.org/download/nginx-1.10.3.tar.gz
    tar xf nginx-1.10.3.tar.gz
    cd nginx-1.10.3/
    useradd nginx -s /sbin/nologin -M
     ./configure  --user=nginx --group=nginx --prefix=/usr/local/nginx-1.10.3/ --with-http_stub_status_module  --with-http_ssl_module --with-stream
    yum install -y pcre-devel
    yum install -y openssl-devel
    make && make install
    echo $?
    netstat -lntup
     
    上传解析静态文件:
    [root@elk01 nginx-1.10.3]# vim /usr/local/nginx/conf/nginx.conf  修改主配置文件
    [root@elk01 nginx-1.10.3]# grep -Ev "#|^$" /usr/local/nginx/conf/nginx.conf.default > /usr/local/nginx/conf/nginx.conf 去除配置文件中的空格 和注释
    [root@elk02 html]# vim /usr/local/nginx/conf/conf.d/www.oldboy.com.conf    修改配置文件
    /usr/local/nginx/html/xxxx    放静态文件
     
    主配置文件:
    ```python
    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        sendfile        on;
        keepalive_timeout  65;
       
        server {
            listen       80;
            server_name  localhost;
     access_log logs/www.oldboy.com main;
     location / {
      root html;
      index index.html;
      }
     }
     include /usr/local/nginx/conf/conf.d/*.conf;
    }
    ```

    配置文件
    server {
            listen       80;
            server_name  www.oldboy.com;
            access_log logs/www.oldboy.com_access.log main;
            location / {
                root   html/oldboy;
                index  index.html index.htm;
            }
    }
     
     
    /usr/local/nginx/sbin/nginx -s reload  重启
  • 相关阅读:
    程序员之歌 littleflute原创
    生成网站缩略图的小工具,:)
    十个习惯
    用反编译工具透析.Net页面生成本质
    装箱拆箱陷阱揭秘
    图片上传——用一般处理程序实现
    Web.config文件中常用的配置节点
    初识三层,请多指教
    匪夷所思的题目,心理慢慢引导
    权重分配方法
  • 原文地址:https://www.cnblogs.com/yanhui1995/p/9768671.html
Copyright © 2011-2022 走看看