zoukankan      html  css  js  c++  java
  • Docker常用命令

    关于镜像的命令

    从远端仓库拉取镜像

    docker pull [仓库的URL]/[名称空间]/[仓库的名称]:[版本号]
    eg:
      docker pull redis
      默认:docker pull docker.io/library/redis:latest
    完整命令:
    docker pull registry.cn-hangzhou.aliyuncs.com/alvinos/python:v5

    查询远端仓库镜像
    docker search redis --limit 3 # --limit 3 只获取3条

    NAME          DESCRIPTION                                   STARS                  OFFICIAL             AUTOMATED
    redis         Redis is an open source key-value store that… 8792                   [OK]
    bitnami/redis   Bitnami Redis Docker Image                   168                   [OK]
    rediscommander/redis-commander Alpine image for redis-commander - Redis man… 47                           [OK]

    NAME :镜像名称
    DESCRIPTION : 简介
    STARS : 收藏个数
    OFFICIAL : 是否是官方镜像
    AUTOMATED : 是否是自构建的镜像

    -f : 过滤查询
    stars=150 : 查询收藏数大于150的镜像

    --no-trunc : 不截断查询

    从本机上传镜像到远端仓库

    第一步:先登录

    docker login [参数] [仓库URL]
    docker login --username=yangyang091022 registry.cn-hangzhou.aliyuncs.com

    第二步:打标签

    docker tag [原镜像名称]:[版本号] [新的名称]:[新版本号]

    docker tag redis:latest registry.cn-hangzhou.aliyuncs.com/alvinos/redis:v1

    第三步:推送

    docker push [镜像名称]

      docker push registry.cn-hangzhou.aliyuncs.com/alvinos/redis:v1

    在本机的镜像操作

    查看镜像命令:
    root@localhost yum.repos.d]# docker images

    格式:

    REPOSITORY TAG IMAGE ID CREATED SIZE
    redis latest 74d107221092 12 days ago 104MB

     代表意思:

    REPOSITORY : 镜像名称
    TAG :镜像版本号
    IMAGE ID : 镜像ID
    CREATED : 创建时间到现在的时间
    SIZE : 指镜像大小

    删除镜像命令:

    docker rmi [镜像ID|[镜像名称:版本号]]   #i代表images

    参数:

      -f:代表强制删除,如果该镜像正在使用中,强制删除,实际上是删除标签。

    清理镜像

    docker image prune [参数]

    -a : 清理所有的(未被使用)镜像

    # 保存容器为镜像
    docker commit [容器ID] [参数]

    # 保存容器为镜像
    docker commit [容器ID] [参数]

    -a : 执行维护者
    -m : 指定简介
    -p : 当保存时,容器停止运行

    #查看镜像的详细信息

    docker inspect [参数] [镜像名称|镜像ID]


    docker容器中至少有一个应用程序运行在前台

    # 提交镜像
    docker commit [参数] [容器ID|容器名称]

    参数:
    -a : 作者
    -m : 描述
    -p : 当保存镜像时,暂停容器运行

    有关于容器的命令

    ## 创建容器
    docker run [参数] [镜像名称] [命令]

    特点:
    ①:检查本地是否有所需镜像(如果没有,立即去相应的镜像仓库下载)
    ②:根据参数启动

    参数:
    -d : 以守护进程的方式运行一个容器
    docker run -d nginx:1.19.5
    --name : 指定一个容器的名称(将名称加入到Docker DNS当中)
    docker run --name nginx -d nginx:1.19.5
    -p(小写) : 指定固定端口映射[宿主主机端口号:容器内部端口号]
    docker run -d -p 8099:80 nginx:1.19.5
    -P(大写) : 指定随机端口映射
    docker run -d -P nginx:1.19.5
    -v : 挂载存储卷
    docker run -d -v [宿主主机的目录]:[容器内的目录] [镜像名称] [启动命令]
    --rm : 当一个容器的生命周期结束时,立即删除该容器
    docker run -d --rm [镜像名称或ID]
    -e : 在容器内设置一个环境变量
    docker run -d -e NGINX_VERSION=1.19.5000 nginx:1.19.5
    docker run -d -P -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
    -i : 打开标准输出
    -t : 创建一个伪终端
    docker run -it centos bash

    # 查看容器列表
    docker ps (默认查询的是当前系统正在运行的容器)

    -a : 显示搜索的容器(包括已停止的容器)
    -q : 只显示容器ID

    # 进入容器

    ## attach
    1、没有提供可执行命令的地方
    2、当attach结束时,容器也跟着结束了

    创建一个管道,链接上容器内的pid=1哪个进程,当attach窗口结束时,容器随即结束器生命周期
    docker attach [容器ID|容器名称]

    ## exec : 在宿主主机上通过exec的方式在容器内执行某个命令
    docker exec [参数] [容器id | 容器名称] [命令]

    docker exec -it pedantic_murdock bash
    -i : 打开标准输出
    -t : 创建一个伪终端

    3、nsenter
    创建一个管道,链接容器

    4.ssh

    # 导出容器为镜像[export]
    docker export [容器ID|容器名称] > [压缩包名称]
    docker export nginx_name > nginx.tar

    # 导入镜像[import]
    docker import [压缩包名称] 镜像名称(自定义)
    docker import nginx.tar test/nginx:v1

    # 导入镜像
    docker load < [镜像压缩包]
    docker load -i [镜像压缩包]

    # 导出镜像为镜像压缩包(save)
    docker save [镜像id | 镜像名称] > [压缩包名称]
    docker save test/nginx:v2 > test_nginx.tar
    参数:
    -o : 指定在一个压缩包内保存多个镜像

    # 导出容器为镜像[export]
    docker export [容器ID|容器名称] > [压缩包名称]
    docker export nginx_name > nginx.tar


    save和load 与 export和import 区别?
    1、save保存比较完整,export仅仅保存镜像。
    2、save保存的体积大于export保存的体积
    3、import可以重命名,load不能重命名
    4、save可以保存多个镜像,export只能保存一个容器。

    # 查看容器日志
    docker logs [容器ID|容器名称]

    # 停止容器

    docker stop [容器ID|容器名称]

    docker复制文件以及网络模式

    复制文件
    
    1、由宿主主机复制到容器内部
    docker cp [宿主主机文件路径] [容器ID]:[容器内部路径]
    
    2、由容器内部复制到宿主主机
    docker cp [容器ID]:[容器内部路径] [宿主主机文件路径]

    从主机上传文件到虚拟机,需要安装
    yum install -y lrzsz

    有关于网桥的命令

    实现原理: 创建一个统一网络(交换机),为与其相连的容器提供网络转发功能
    docker network [参数]

    ## 查看系统网桥
    docker network ls

    ## 创建网桥
    docker network create [网桥的名称]

    ## 查看网桥的详细信息
    docker network inspect [网桥名称]

    [root@localhost ~]# docker network inspect oldboy
    [
    {
    "Name": "oldboy",
    "Id": "617ba09862ae61d1385c1c9af517d3d803f19e965cd4bce5a5655234c8d1bf6e",
    "Created": "2020-12-03T08:58:43.354251604+08:00",
    "Scope": "local",  
    "Driver": "bridge",
    "EnableIPv6": false,
    "IPAM": {
    "Driver": "default",
    "Options": {},
    "Config": [
    {
    "Subnet": "172.18.0.0/16",
    "Gateway": "172.18.0.1"
    }
    ]
    },
    "Internal": false,
    "Attachable": false,
    "Ingress": false,
    "ConfigFrom": {
    "Network": ""
    },
    "ConfigOnly": false,
    "Containers": {},
    "Options": {},
    "Labels": {}
    }
    ]

    ## 删除网桥
    docker network rm [网桥名称|ID]

    ## 清理网桥
    docker network prune

     构建镜像

    docker build [参数] [自定义镜像名称] [dockerfile]
    -t : 指定镜像名称
    -f : 指定Dockerfile路径
    
    ## FROM
    指定基础镜像(作为构建新镜像时提供一个基础环境)
    FROM [镜像名称]:[版本号]
    
    ## RUN
    构建镜像时在镜像中执行命令
    RUN [Linux 命令]
    
    ## ADD 
    将本地文件复制到镜像中
    ADD 宿主主机文件路径 镜像相对应的文件路径
    
    
    ## CMD
    指定容器启动时默认执行的命令
    CMD [容器启动时在容器内执行的命令]
    
    1、指定基础镜像
    FROM python:3.6.12

    2、安装django
    RUN pip3 install django=2.2.2 -i https://pypi.douban.com/simple/

    
    

    RUN django-admin startproject app
    RUN cd /app && django-admin startapp docker

    
    

    3、添加django源码包至镜像内
    #ADD day91 /root/

    
    


    4、设置启动命令
    CMD cd /app && python3 manage.py runserver 0.0.0.0:8000



    安装nginx

    1、yum install yum-utils -y
    
    2、touch /etc/yum.repos.d/nginx.repo
    
    3、vim /etc/yum.repos.d/nginx.repo
    
    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    
    [nginx-mainline]
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    
    4、生成yum缓存:yum makecache
    
    5、安装nginx: yum install nginx -y
    
    6、配置代理
    
    nginx -t : 测试配置文件
    nginx -g 'daemon off;' : 在前台启动nginx

     docker重启

    systemctl restart docker
  • 相关阅读:
    haproxy path_end不能忽略
    haproxy hdr和path
    logstash 分析nginx 错误日志
    logstash 处理nginx 访问日志
    rsyslog 同时发生nginx 访问日志和错误日志
    rsyslog 同时发生nginx 访问日志和错误日志
    【codevs1048】石子归并
    【codevs1576】最长严格上升子序列
    【BAT】中文数字to阿拉伯数字转换
    Windows批处理BAT脚本
  • 原文地址:https://www.cnblogs.com/ltyc/p/14099730.html
Copyright © 2011-2022 走看看