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 
 

 

 
posted @ 2018-04-23 14:42  EngineTang  阅读(427)  评论(0编辑  收藏  举报