1,docker 的安装卸载

https://docs.docker.com/install/linux/docker-ce/ubuntu/

2,docker中的基本概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

1)镜像就相当于安装系统时所需的系统镜像。

2)容器就相当于正在运行中的虚拟机。

3)tar文件类似于VMware中vmdk文件,使用时可以把镜像保存(save指令)为tar文件,移动后可以直接把tar文件加载(load指令)为镜像。

4)dockerfile文件相当于配置文件,内容是镜像的构建步骤等,通过build指令来构建出镜像。

5)仓库中保存了各种镜像(例如MySQL镜像,Tomcat镜像等等),我们可以很方便的下载(pull指令)到本地使用,也可以吧自己的镜像push到仓库。

3,基本的操作命令

从仓库下载所需的镜像
docker pull nginx
相当于docker pull nginx:latest 即从仓库下载最新的nginx

查看本地的镜像
docker images

运行镜像得到容器
docker run -d -p : nginx
-d 后台运行
-p 指定内外的端口映射
--name 指定容器的名字
-v 'pwd':/usr/share/nginx/html 把当前目录映射到容器里的这个目录,这样就可以把一些文件放到容器外,方便修改

这一串字母数字就是容器的ID

查看正在运行的容器有哪些
docker ps

访问192.168.91.138:80,ip是ubuntu的ip

可以再用这个镜像运行一个容器
docker run -d -p : nginx
进入容器
docker exec -it 容器的ID bash
容器ID可以只写前几个字符,能和其他容器区分即可

从命令行可以看到已经进入了ID为7a开头的这个容器

修改这个nginx容器中的index文件
cd /usr/share/nginx/html/

修改index.html中的内容

退出容器
exit

删除容器
docker rm -f 容器id

容器通过commit命令得到镜像
docker commit 容器id 给镜像取的名字
再通过docker images命令看本地的镜像就会有自己新生成的镜像了

创建Dockerfile文件
vim Dockerfile 例如写入如下内容

 FROM nginx (基于nginx镜像)
  ADD ./ /usr/share/nginx/html/(把当前目录下的文件拷贝到后面这个文件夹)

docker build -t 给要创建的镜像取的名字 .
最后这个 点(.)是用当前目录下的dockerfile文件构建

运行该镜像

把镜像保存到 .tar文件中
docker save image的名字 > name.tar

把dockerfileimage镜像删除,得先把用他创建的容器删除

利用.tar文件生成镜像
docker load < name.tar

详见B站视频  https://www.bilibili.com/video/av58402749?from=search&seid=713640718069258203

docker 入门(1)的更多相关文章

  1. 第三章 Docker 入门

    第三章 docker 入门 3.1 确保docker已经就绪 首先查看docker程序是否存在,功能是否正常 [#3#cloudsoar@cloudsoar-virtual-machine ~]$su ...

  2. Docker入门教程(九)10个镜像相关的API

    Docker入门教程(九)10个镜像相关的API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第九篇,重点介绍了镜像相关的Docker Remote ...

  3. Docker入门教程(八)Docker Remote API

    Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...

  4. Docker入门教程(七)Docker API

    Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和 ...

  5. Docker入门教程(六)另外的15个Docker命令

    Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...

  6. Docker入门教程(五)Docker安全

    Docker入门教程(五)Docker安全 [编者的话]DockOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第五篇,介绍了Docker的安全问题,依然是老话重谈,入门者可以通 ...

  7. Docker入门教程(四)Docker Registry

    Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...

  8. Docker入门教程(三)Dockerfile

    Docker入门教程(三)Dockerfile [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第三篇,介绍了Dockerfile的语法,DockerOn ...

  9. Docker入门教程(二)命令

    Docker入门教程(二)命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker ...

  10. Docker入门教程(一)介绍

    http://dockone.io/article/101 Docker入门教程(一)介绍 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第一篇,介绍了 ...

随机推荐

  1. sql_profile 固定SQL执行计划

    使用 sql_profile 固定SQL执行计划 Table of Contents 1. 扯蛋 2. 利用SQL PROFILE固定执行计划 2.1. 查看原来语句的执行计划 2.2. 指定SQL使 ...

  2. 阶段3 3.SpringMVC·_03.SpringMVC常用注解_5 RequestHeader注解

  3. js高程之作用域

    我们知道js执行环境有全局环境(window)和局部环境(一般指函数环境)之分. ; function calc(){ ; } 上述代码,虽然有两个num变量,但是他们所在的执行环境却是不同的,第一个 ...

  4. 解决pip安装第三方包编码错误:UnicodeDecodeError: 'ascii' codec can't decode byte....

    .../python27/Lib/mimetypes.py 在 import之后添加下列内容 if sys.getdefaultencoding() != 'gbk': reload(sys) sys ...

  5. 【神经网络与深度学习】什么是HDF

    什么是HDF HDF 是用于存储和分发科学数据的一种自我描述.多对象文件格式.HDF 是由美国国家超级计算应用中心(NCSA)创建的,以满足不同群体的科学家在不同工程项目领域之需要.HDF 可以表示出 ...

  6. JAVA师徒架构班 - 带徒模式

    (转: http://www.jeecg.org/forum.php?mod=viewthread&tid=2291&extra=page%3D1&page=1) 一个程序员技 ...

  7. 多线程--原子操作 Interlocked系列函数

    [转]原文地址:http://blog.csdn.net/morewindows/article/details/7429155 线程同步与互斥: 互斥主要指多个线程不能同时访问一个资源,如打印机就是 ...

  8. asp.net之后台使用根目录运算符

    在asp.net前台,大家会经常使用根目录运算符~.这样,可以不用考虑网站的配置目录. 有时,需要在后台设置路径,同样需要使用根目录运算符.好吧,其实我每次需要使用这种方法,就需要在baidu上查找如 ...

  9. sql server查询数据库连接数

    设置最大连接数 下面的T-SQL 语句可以配置SQL Server 允许的并发用户连接的最大数目. exec sp_configure 'show advanced options', 1exec s ...

  10. Java中的mutable和immutable对象实例讲解

    1.mutable(可变)和immutable(不可变)类型的区别 可变类型的对象:提供了可以改变其内部数据值的操作,其内部的值可以被重新更改. 不可变数据类型:其内部的操作不会改变内部的值,一旦试图 ...