zoukankan      html  css  js  c++  java
  • docker 1--基本功能

    基本功能

    镜像

    下载镜像

    docker search tutorial
    docker pull learn/tutorial

    查看本地镜像

    docker images

    安装与commit,每次commit变化images名。

    docker run learn/tutorial apt-get install -y ping
    
    保存改动,创建新容器
    [root@s2_centos ~]# docker ps -l
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
    6c121f3cd912        learn/tutorial      "apt-get install -..."   2 minutes ago       Exited (0) 2 minutes ago                       pedantic_hodgkin
    [root@s2_centos ~]#
    [root@s2_centos ~]# docker commit 6c1  learn/ping
    sha256:e0b8cf4ba4cc9ddc3a20cffc93ff7df9e94cb4ae50d1ca4794e9bb1d6612dc9c

    由此,生成了新的镜像 learn/ping 在本地仓库

     container

    查看

    docker ps   # 查看的是container
    不加参数,列出运行的
    -a  列出所有
    -n  列出最近n个
    -l   列出最近的
    -q  静默模式

    启停

    docker start/stop  names或者id

     删除

    docker rm 861cb16c86c1

    仓库

    公有仓库

    docker pull a
    docker tag  a b
    docker login
    docker push b

    私有仓库

    docker search  registry
    docker pull registry

    启动仓库

    docker run -d -p 5000:5000  --restart=always --name registry222  -v /data/dockerfile/:/var/lib/registry  registry  

    通过修改tag名,(自动选择)上传到私有仓库

    查看仓库本地/data/dockerfile目录

    验证

    删除docker rmi localhost:5000/learnping
    重新获取docker pull  localhost:5000/learnping

     查看私有仓库镜像

    curl -X GET http://127.0.0.1:5000/v2/_catalog

    结合python查看 镜像与版本

    import requests  
    import json  
    import traceback  
       
    repo_ip = '10.100.4.20'  
    repo_port = 5000  
       
    def getImagesNames(repo_ip,repo_port):  
        docker_images = []  
        try:  
            url = "http://" + repo_ip + ":" +str(repo_port) + "/v2/_catalog"  
            res =requests.get(url).content.strip()  
            res_dic = json.loads(res)  
            images_type = res_dic['repositories']  
            for i in images_type:  
                url2 = "http://" + repo_ip + ":" +str(repo_port) +"/v2/" + str(i) + "/tags/list"  
                res2 =requests.get(url2).content.strip()  
                res_dic2 = json.loads(res2)  
                name = res_dic2['name']  
                tags = res_dic2['tags']  
                for tag in tags:  
                    docker_name = str(repo_ip) + ":" + str(repo_port) + "/" + name + ":" + tag  
                    docker_images.append(docker_name)  
                    print docker_name  
        except:  
            traceback.print_exc()  
        return docker_images  
       
    a=getImagesNames(repo_ip, repo_port)  

     案例

     镜像--容器--交互--修改--提交

    docker search nginx
    docker pull nginx
    docker run --name webserver -d -p 80:80 nginx
    docker ps
    docker exec -it webserver bash
    >>>在容器中修改部分配置 docker commit
    --author "infaaf" --message "修改默认页" webserver nginx:v2 docker images

     运行新镜像容器

    docker stop 3c36d3a405c9
    docker images
    docker run --name web2 -d -p 888:80 nginx:v2

    docker commit 意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为黑箱镜像
    定制行为应该使用Dockerfile 来完成


    附:docker应用部署 perconna monitor

    wget -qO- https://get.docker.com/ | sh
    service docker start
    docker run hello-world
    docker pull percona/pmm-server:latest
    docker create
    >    -v /opt/prometheus/data
    >    -v /opt/consul-data
    >    -v /var/lib/mysql
    >    -v /var/lib/grafana
    >    --name pmm-data2
    >    percona/pmm-server:latest /bin/true
     
     
     
    docker run -d
    >    -p 80:80
    >    --volumes-from pmm-data
    >    --name pmm-server2
    >    --restart always
    >    percona/pmm-server:latest
     
     
    客户端
    pmm-admin config --server 192.168.188.141
    pmm-admin add mysql --user root --password admin
     
    pmm-admin list 
     
     
  • 相关阅读:
    第4章.计算节点
    Eclipse插件ViPlugin2.X的破解方法
    金刚经
    js
    C++ 重写重载重定义区别
    string::substr()简介
    信息熵与二进制
    一个简单的条件概率问题
    HPLINUX hplinux 安装升级 至 jdk1.8
    linux 解压命令
  • 原文地址:https://www.cnblogs.com/infaaf/p/8919049.html
Copyright © 2011-2022 走看看