码迷,mamicode.com
首页 > 其他好文 > 详细

Docker学习笔记——镜像、容器、仓库

时间:2017-08-24 20:09:19      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:docker

Docker三个基本概念

  • 镜像(image)

  • 容器(container)

  • 仓库(Repository)

  1. 镜像(image)

搜索镜像

docker search nginx

获取镜像

docker pull nginx

指定Registry地址和具体的仓库名下载镜像,没有指定Registry地址,默认从Docker Hub上下载

docker pull jwilder/nginx-proxy

查看镜像

docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mongo               latest              b39de1d79a53        2 weeks ago         359MB
nginx               latest              b8efb18f159b        4 weeks ago         107MB
mysql               latest              c73c7527c03a        4 weeks ago         412MB

列表中包含仓库名、标签、镜像ID、创建时间及镜像大小

查看镜像是可以指定只显示镜像ID或者按照特定格式显示镜像内容

docker images -q
b39de1d79a53
b8efb18f159b
c73c7527c03a
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID            REPOSITORY          TAG
b39de1d79a53        mongo               latest
b8efb18f159b        nginx               latest
c73c7527c03a        mysql               latest

删除镜像

docker rmi 镜像ID

注意没有标签名称的,tag显示为none表示虚悬镜像,会占用系统资源,可以使用下面命令清除

docker rmi $(docker images -q -f dangling=true)

2、容器(container)

创建并运行容器

docker run centos /bin/echo ‘hello world!‘
hello world!

docker run 常用参数

   -d 后台运行容器,并返回容器ID;
   -i 以交互模式运行容器,通常与 -t 同时使用;
   -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

   --name="web01" 为容器指定一个名称;

   -p 指定容器到主机的端口映射;

   -P 映射容器端口到主机的随机端口;

   --dns 8.8.8.8 指定容器使用的DNS服务器,默认和宿主一致;
   -h "web01" 指定容器的hostname;
   -e username="docker" 设置环境变量;

   -v 绑定数据卷

docker run -i -t centos /bin/bash
docker run -d --name nginx01 -p 80:80  nginx

查看所有容器

docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                NAMES
0f3bae62200a        nginx               "nginx -g ‘daemon ..."   14 seconds ago      Up 10 seconds               0.0.0.0:80->80/tcp   nginx01
b1cdeb403e25        centos              "/bin/bash"              3 minutes ago       Exited (0) 2 minutes ago                         nifty_bohr
aa243f5f4595        centos              "/bin/echo ‘hello ..."   22 minutes ago      Exited (0) 22 minutes ago                        confident_shaw

列表中包含容器ID,镜像名称,运行命令,创建时间,容器状态,端口映射,容器名称,创建容器时建议给容器起一个有意义的名称便于识别,默认会随机生成一个容器名称

停止容器

docker stop 容器ID

重启容器

docker restart 容器ID

删除容器

docker rm 容器ID

默认情况下,rm不会删除正在运行的容器,所以可以通过docker rm $(docker ps -a -q)删除所有未运行的容器

进入容器

docker exec -it nginx01 bash

还可通过docker attach 容器ID和nsenter的方式进入容器,前者不安全,后者有点麻烦,就不记录了

退出容器

exit

3、仓库(Repository)

仓库(Repository)是集中存放镜像的地方,一个容易混淆的概念是注册服务器(Registry)。实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说,仓库可以被认为是一个具体的项目或目录。

目前镜像默认都使用Docker Hub的公共仓库,国内访问缓慢可以使用一些知名的镜像加速源,可参考Docker学习笔记——Docker安装部署或者可以构建私有的仓库,后续文章将详细介绍。


知行办公,专业移动办公平台 https://zx.naton.cn/
【总监】十二春秋之,3483099@qq.com
【Master】zelo,616701261@qq.com
【运营】狼行天下,897221533@qq.com
【产品设计】流浪猫,364994559@qq.com
【体验设计】兜兜,2435632247@qq.com
【iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com
【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com
【java】首席工程师MR_W,feixue300@qq.com
【测试】土镜问道,847071279@qq.com
【数据】喜乐多,42151960@qq.com
【安全】保密,你懂的。






本文出自 “践行者” 博客,请务必保留此出处http://bluemooder.blog.51cto.com/12822812/1959040

Docker学习笔记——镜像、容器、仓库

标签:docker

原文地址:http://bluemooder.blog.51cto.com/12822812/1959040

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!