zoukankan      html  css  js  c++  java
  • docker

    1 docker
        -Docker是一个客户端-服务器(C/S)架构程序
        -重点:
            -镜像:镜像当作容器的“源代码”,类比面向对象中的:类
            -容器:就是一个一个的操作系统:对象
        -docker安装
            -sudo yum update
            -sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
            -yum install docker-ce -y (你的机器,这一句就可以了)
        -查看版本
            docker -v
        -启动docker服务、停止、重启
            -systemctl start docker
            -systemctl stop docker
            -systemctl restart docker
            -systemctl status docker  查看docker状态
        -设置清华源
            -vi /etc/docker/daemon.json 
            -写入
                {
                "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
                }
        -查看docker概要
            -docker info
        -镜像相关操作
            -搜索镜像:docker search python
                -在https://hub.docker.com/地址里搜
            -下载镜像
                -docker pull centos:centos7.7.1908
                -docker pull centos  #下载最新版本
            -查看下载的镜像
                -docker imgs
            -删除镜像
                -docker rmi id号
        -容器相关命令
            -查看正在运行的容器
                -docker ps
            -查看所有容器
                -docker ps -a
            -启动容器(基于image启动)
                -docker run
                    -i:表示运行容器
    
                    -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
    
                    --name :为创建的容器命名。
    
                    -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
    
                    -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
    
                    -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
                    
                    
                -启动centos7
                    -docker run -id --name mycentos7 centos:centos7.7.1908
                    
            -停止容器
                -docker stop 容器id/名字
            -启动已经有的容器
                -docker start 容器id/名字
            -进入到容器内部
                -docker exec -it 容器名称 (或者容器ID)  /bin/bash
                -docker exec -it 容器名称 (或者容器ID)  sh
                -退出:exit
            -文件拷贝
                -向里拷贝(从宿主机---》容器)
                    docker cp 需要拷贝的文件或目录 容器名称:容器目录
                -向外拷贝(从容器---》宿主机)
                    docker cp 容器名称:容器目录 需要拷贝的文件或目录
                    
            -目录挂载
                -docker run -di -v /home/test:/home/test --name=mycentos3 centos:centos7.7.1908
                
            -查看容器ip地址
                -docker inspect 名字/id
                -docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
            -删除容器
                -docker rm 容器名称(容器ID)
                
                
        -部署mysql
            -docker pull mysql
            -docker run -di --name=mysql1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
                
        -部署redis,支持远程连接
            -docker pull redis
            -创建conf和data文件夹
            -在conf中创建redis.conf文件,内部写入
                bind 0.0.0.0 #绑定地址
                daemonize NO
                protected-mode no #运行远程连接
                requirepass 123456 #密码是123456
                
            -docker run -p 6379:6379 --name redis_6379 -v /home/test/redis/conf/redis.conf:/etc/redis/redis.conf -v /home/test/redis/data:/data -d redis:alpine3.11 redis-server /etc/redis/redis.conf --appendonly yes
        -迁移与备份
            -本质就是把容器打包成镜像
            -压缩,传到别的机器
            -别的机器load回来,就能看到image---run起来,直接容器就跑起来了
                        
        -Dockerfile
            -Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像(本质:dockerfile能生成镜像)
            -文件名字必须交Dockerfile
            -命令:
                FROM image_name:tag    定义了使用哪个基础镜像启动构建流程
                MAINTAINER user_name    声明镜像的创建者
                ENV key value    设置环境变量 (可以写多条)
                RUN command    是Dockerfile的核心部分(可以写多条),linux命令
                RUN wget https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz
                RUN tar -xzf Python-3.6.10.tgz
                ADD source_dir/file dest_dir/file    将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
                COPY source_dir/file dest_dir/file    和ADD相似,但是如果有压缩文件并不能解压
                WORKDIR path_dir    设置工作目录
            -案例,在python下安装django 1.11.9 和requests模块
                FROM python:3.6
                MAINTAINER lqz
                RUN pip3 install django==1.11.9
                RUN pip3 install requests
                WORKDIR /home
                
        -私服搭建
            -是公司自己存放docker镜像image的地方(自己做的镜像)
            -步骤
                1 拉取私有仓库镜像(此步省略)
                docker pull registry
                docker run -di --name=registry -p 5000:5000 registry
                2 打开浏览器 输入地址http://39.100.80.124:5000/v2/_catalog看到{"repositories":[]} 表示私有仓库搭建成功并且内容为空
    
                3 修改daemon.json
                    vi /etc/docker/daemon.json
                4 添加以下内容,保存退出。
                    {"insecure-registries":["39.100.80.124:5000"]} 
    
                5 重启docker 服务
                    systemctl restart docker
                6 镜像上传至私有仓库
                7 标记此镜像为私有仓库的镜像
                    docker tag django2.0 39.100.80.124:5000/django2.0
                8 再次启动私服容器
                    docker start registry
                9 上传标记的镜像
                    docker push 39.100.80.124:5000/django2.0
                
        -docker-compose:单机docker容器管理的插件
        -多台机器,多个容器:k8s:Kubernetes
        
    #公司里使用docker
        -在windows上用pycharm写代码,提交到git上,在远程
        -测试服务器(centos、乌班图),从git上落下代码来,重启uwsgi,就是最新项目了     压力测试jmeter
        -加入docker后,从git拉下项目,直接重启docker容器,就运行最新项目了
  • 相关阅读:
    启明星门户网站Portal发布V4.5,并兼论部分功能的实现
    修改SQL数据库dbo所有者
    iphone& android 开发指南 http://mobile.tutsplus.com
    启明星会议室预定系统V5.0.0.0版本说明
    启明星Portal企业内部网站V4.3版 附演示地址 http://demo.dotnetcms.org
    在winform程序里实现最小化隐藏到windows右下角
    【门户网站】启明星Portal系统里,关于天气预报调用的说明
    获取客户端经纬度坐标
    修改表名或者列名SQL
    ER图
  • 原文地址:https://www.cnblogs.com/zahngyu/p/12120041.html
Copyright © 2011-2022 走看看