zoukankan      html  css  js  c++  java
  • docker 入门(docker 镜像 、容器、仓库)

    一、关于docker 镜像 、容器、仓库之间的关系

    镜像(Image): 类似于虚拟机 的镜像
    
    容器(Container): 类似于操作系统(或者说是独立的软件), 由镜像可以创建大量的容器.
    
    仓库(Repository) : 存储镜像的仓库,存储着各种各样的镜像
    
    
    如果我们需要运行nginx,mysql,redis这一个个的软件(容器),我们需要对应的镜像,镜像从何而来呢? 你可以自己制作,也可以直接从仓库中获取别人写好的镜像就可以了.
    

    二、docker 镜像

    • 2.1 搜索镜像
    docker search nginx
    // docker search [image]
    // 搜索nginx镜像
    
    • 2.2 下载镜像
    docekr pull nginx
    // docker pull [image:[tag]]
    // 默认下载laster 版本 也就是最后一个版本的nginx
    
    • 2.3 查看搜素镜像
    docker images
    
    • 2.4 删除镜像
    // 删除名为ngixn 的镜像
    docker rmi nginx
    
    // 删除镜像ID
    docker rmi 562d384073b5
    // docker rmi [image ID]
    
    // 批量镜像
    docker rmi 562d384073b5 fcf076ac0126 8363bddde211
    // docker rmi [image ID] [image ID] ...
    

    三、docker容器

    • 3.1 运行容器
    docker run --name nginx_container -p 8080:80 -v ./nginx/www:/usr/share/nginx/html nginx
    // docker run [-dit] [--name container_name] [-p local_port:container_port] [-v local_dir:container_dir] [image[:tag]]
    
    // -d   后台运行
    // -it 交互式运行
    // --name  容器名
    // -p 本地端口 8080 映射至 容器80端口
    // -v 将./nginx/www 挂载至容器的/usr/share/nginx/html 目录
    // run 启动
    // nginx   nginx镜像
    
    • 3.2 后台运行
    docker run -d nginx 
    // -d 后台运行
    
    • 3.3 交互式运行
    docker run -it nginx /bin/bash
    // -it 交互式运行
    // /bin/bash 用bash交互 
    
    • 3.4 已交互式运行时的退出于守护进程
    ctrl + d   // 直接退出,容器也会终止
    
    ctrl + p +q   // 守护进程方式退出
    
    • 3.5 查看容器的日志
    docker log [container_ID]
    //docker log d86dc3983fc7
    
    • 3.6 查看容器情况
    docker ps a   //查看所有容器
    
    docker ps l   // 查看运行中容器的id
    
    docker port [container_ID]  // 查看容器的端口映射
    
    • 3.7 启动容器
    // 启动容器
    docker start [container_name | container_ID]
    
    
    // 重启容器
    docker restart [container_ID]
    
    • 3.8 停止容器
    docker stop [containr_name | container_ID] 
    
    • 3.9 (批量)删除容器
    docker rm [container_ID] [container_ID]
    // docker rm d86dc3983fc7     // 删除一个容器
    // docker rm d86dc3983fc7 0b18e9cd782c // 删除两个
    
    • 3.10 查看容器信息
    // 查看简单的信息
    docker top [container_ID | container_name]
    
    // 查看更详细的底层信息
    docker inspect [container_ID | container_name]
    
    • 3.11 进入容器
    docker attach [container_ID]  // 这种方式进入容器 操作都是同步的,切一旦ctrl+d就会容器就结束了 .一般不用这种方式的
    
    docker exec -it [container_ID] /bin/bash
    //  另启一个进程的方式进入容器
    // -it 交互式
    // 用bash 方式
    
    • 3.12 导出容器
    docker export [container_ID] > name.tar  
    
    • 3.13 导入容器
    //导入并重新命名
    docker import [name.tar | url] > [REPOSITORY[:TAG]]
    // 直接导入
    docker import [name.tar | url]  
    

    四、docker仓库

    • 4.1 创建私有仓库
    docker run -d -p 5000:5000 --restart=always --name registry -v $HOME/Docker/Registry:/var/lib/registry registry
    // --restart=always  表示总是启动的,挂掉后会重启
    
    // deamon.json  添加
    {
        "insecure-registries":[127.0.0.1:5000]
    }
    
    • 4.2 推出镜像至私有的仓库
    docker tag [image_name] 127.0.0.1/jmz/nginx:v1
    // 此时你会发现的docker images 中多了一个127.0.0.1/jmz/nginx 镜像
    
    docker push 127.0.0.1/jmz/nginx:v1
    // 此时镜像已推送至自己本地的私有仓库中了
    
    • 4.3 拉取私有仓库中的镜像
    docker pull 127.0.0.1:5000/jmz/nginx:v1
    
    如果你自己有docker hub 账号的话
    你可以通过
    docker login 
    登录自己的账号
    
    自己制作的镜像推至到自己的docker hub 账号中 
    

    五、docker 其他命令

    • docker cp
    docker cp [OPTIONS] CONTAINER_ID:DEST_PATH
    // docker cp ./data  9f0156097f55:/data
    // 将data 目录下的内容 复制到 容器9f0156097f55 data目录下
    
    • docker build --build-arg 用法
    docker build --build-arg MODE=debug --build-arg url="baidu.com"  -t app .
    // --build-arg 设置变量 传入dockerfile 内部的ARG 中
    

    六、docker 查看日志

    • docker log
    docker log [container_id]  // 查看日志
    docker log -d [container_id]  // 实时查看日志
    
  • 相关阅读:
    迭代模式
    HackSeven Canvas上的动画
    模板模式
    适配器模式
    豆瓣推荐纪录片
    二手手机十分管用的检查方法
    传参的四种方法
    守夜人誓言+考研誓言
    网络小说分享
    阿里巴巴Java开发手册(详尽版) pdf
  • 原文地址:https://www.cnblogs.com/xiaobaiskill/p/11918283.html
Copyright © 2011-2022 走看看