一、关于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] // 实时查看日志

docker 入门(docker 镜像 、容器、仓库)的更多相关文章

  1. Docker 镜像 容器 仓库

    Docker 包括三个基本概念镜像(Image)容器(Container)仓库(Repository) Docker 镜像 Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资 ...

  2. docker入门——构建镜像

    前面我们已经介绍了如何拉取已经构建好的带有定制内容的Docker镜像,那么如何构建自己的镜像呢? 构建Docker镜像有以下两种方法: 使用docker commit命令. 使用docker buil ...

  3. Docker学习第一天(Docker入门&&Docker镜像管理)

    简介 今天小区的超市买零食老板给我说再过几天可能就卖完了我有点诧异,老板又说厂家不生产了emmm 今天总算开始docker了! 1.Docker? 1.什么是Docker Docker 是一个开源的应 ...

  4. docker 批量删除 镜像 容器

    我们在docker构建和测试时,经常会产生很多无用的镜像或者容器,我们可用如下两条命令一个一个删除. docker container rm 容器id #删除容器 可简写: docker rm 容器i ...

  5. Docker入门之四搭建私有仓库

    前面学习了下镜像和容器,今天来学习下仓库,来搭建本地私有仓库.当然可以使用远程的共有的仓库,但在企业中有的还是放在本地,所以需要搭建私有仓库. 一.搭建仓库 可以在容器中run一个仓库镜像. dock ...

  6. Docker 入门:镜像

    主要内容: 什么是镜像 下载镜像 pull 设置下载加速源 查看镜像 上传镜像 push 什么是镜像(image) 镜像是一个文件系统,提供了容器运行时需要用到的文件和参数配置.相当于平时在使用某个软 ...

  7. Docker 入门,镜像,安装, 数据,网络,配置

    https://yeasy.gitbooks.io/docker_practice/basic_concept/image.html

  8. Docker入门-docker compose的使用

    Compose简介 Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排.其代码目前在https://github.com/docker/compose 上开源. ...

  9. Docker入门-docker运行springboot应用(二)

    环境准备 jdk8 安装docker 镜像加速器配置 docker私有仓库 springboot工程的jar包 docker部署项目 dockfile Dockfile是一种被Docker程序解释的脚 ...

随机推荐

  1. Mysql 主从同步原理简析

    在开始讲述原理的情况下,我们先来做个知识汇总,究竟什么是主从,为什么要搞主从,可以怎么实现主从,mysql主从同步的原理1.什么是主从其实主从这个概念非常简单主机就是我们平常主要用来读写的服务,我们称 ...

  2. null的坑 和 比较运算符、相等运算符的隐式转换问题 (在javascript中,null>=0 为真,null<=0 为真,null==0却为假,null到底是什么?)

    null在关系运算中的坑 & 关系运算符的隐式转换问题 注意: 比较运算符 和 相等运算符 的 ECMAscript 语法实现不同. 比较运算符 和 相等运算符 对数据进行了隐式转换, 相当于 ...

  3. 如果被问到 HTTP 协议,你真的能讲清楚吗?

    前段时间,在和许久未见的老同学聊天时,突然被问到 http 协议到底是什么?脑海里面第一时间想起来的就是 request 请求.response 响应之类的词汇,但是这样讲他真的能知道是什么吗?我反问 ...

  4. 综合练习——寻找有潜力的bilibili百大UP主(1)

    寻找有潜力的bilibili百大UP主(1) 防喷说明:以下仅为个人学习之余的娱乐项目,本人不主动赋予以下内容任何价值,不确保内容的准确性 欢迎各位友善的指出错误 目录 寻找有潜力的bilibili百 ...

  5. windows上解决git每次重复输入账号密码

    win7电脑: 1.在 C:\Users\Administrator 下 编辑 .gitconfig文件 2.在原有内容下添加一行(此行作用为自动保存,保存修改后再使用一次GIT,输入账号密码后下次即 ...

  6. linux下静态库的制作

     在我们编写软件的过程当中,少不了需要使用别人的库函数.因为大家知道,软件是一个协作的工程.作为个人来讲,你不可能一个人完成所有的工作.另外,网络上一些优秀的开源库已经被业内广泛接受,我们也没有必要把 ...

  7. Visual Studio 2022 预览版3 最新功能解说

    我们很高兴地宣布Visual Studio 2022 的第三个预览版问世啦!预览版3 提供了更多关于个人和团队生产力.现代开发和持续创新等主题的新功能.在本文中,我们将重点介绍Visual Studi ...

  8. vue3.0入门(五):vite构建vue项目

    使用vite构建项目步骤 安装node,cmd输入:node -v验证是否安装成功:一般node安装后会自动安装npm,cmd输入:npm -v验证是否安装成功 选择一个文件夹作为项目文件夹,搜索框输 ...

  9. http请求包含哪几个部分(请求行、请求头、请求体)

    http协议报文     1.请求报文(请求行/请求头/请求数据/空行)         请求行             求方法字段.URL字段和HTTP协议版本             例如:GET ...

  10. 关于notepad++使用的那些事儿

    时间:2019-04-11 整理:PangYuaner 标题:Notepad++正则表达式语法 地址:https://www.cnblogs.com/kekec/p/5255475.html 标题:N ...