Docker 可以理解为一个轻量化的虚拟机, 启动速度快,本身占的资源小

[重要], 容器里是不能保存数据的,容器只要一停止, 所有的数据都会丢失,所以如果重要的数据, 都需要通过配制,把数据保存在 host 机器上。
根据 Docker 内的文件系统设计情况。Docker 镜像被存储在一系列的只读层。当我们开启一个容器,Docker 读取只读镜像并添加一个读写层在顶部。
如果正在运行的容器修改了现有的文件,该文件将被拷贝出底层的只读层到最顶层的读写层。在读写层中的旧版本文件隐藏于该文件之下,但并没有被不破坏 - 它仍然存在于镜像以下。
当Docker的容器被删除,然后重新启动镜像时,将开启一个没有任何更改的新的容器 - 这些更改会丢失, 此只读层及在顶部的读写层的组合被Docker称为Union File System(联合文件系统)

官方镜像网站: hub.docker.com
官方网站在国外, 下载镜像的时候,可能会比较慢, 使用 阿里云加速器, 需要申请才可以使用。

常用命令

docker -v
查看 docker 的当前版本

docker pull [imageName]
从仓库里下载一个指定的镜像名称到本地

docker run
这个是创建一个容器,并启动, 可以通过 --name 参数指定容器的名称,
-d 参数, 让容器在后台运行, 不加此参数, 命令行将一直处于工作状态,不参进行其他操作

docker start [container name]
运行一个已经存在的容器, container name 就是通过 docker run 命令创建的容器

docker restart [container name]
重启一个容器

docker stop [container name]
停止一个正在运行的容器

docker stop $(docker ps -q)
停止所有正在运行的容器

docker diff [container name]
查看容器相对镜像修改了哪些文件

docker rm [container name]
删除一个已经存在的容器, 如果容器正在运行,则删除失败

docker inspect [container name]
查看容器的详细信息

docker ps -a
列表所有容器, 如果不指定参数 -a, 则只会列表正在运行的容器

docker images
列表所有的镜像

docker rmi [image name]
从本地删除一个指定的镜像

数据卷(Volumn)

有些情况下, 容器里的应用需要保存数据,如数据库应用,数据库里的内容是需要保存起来,这个时候, 需要把主机中的某个目录映射到容器中去,使用 -v 参数,如 MYSQL, 通过 使用 -v 参数, 为容器映射一个目录到 host 上来: docker run -d -p 3306:3306 -v /my/own/datadir:/var/lib/mysql mysql
官方提供的 mysql 镜像, 默认把数据文件放在了 /var/lib/mysql 目录,这样就把容器中的数据保存到主机上来了。
在 windows 里, 使用 /d/own/datadir 或 d:/own/datadir 都可以。

进入容器操作

容器在运行这后, 如果我们需要修改或查看容器中的内容,需要进行入容器中,
有四种方法:
1、docker attach containerid, 这种方法试了, 没效果
2、通过 ssh 连接到容器中去, 但是好像说不推荐使用这种方式
3、nsenter 工具, https://github.com/jpetazzo/nsenter, 没用过
4、使用 docker exe -it containerid bash 这样最简单了, 执行后当前命令行工具就切换到了容器内部,可以在这里执行相关的命令,最后使用 exit 退出。

容器互联

当一个主机上有两个容器, 一个放 web 应用, 一个放数据库应用,那么 web 应用怎么访问另一个容器中的数据库呢? 通过 --link 参数来设置
docker run -d --name web --link db:dbserver nginx

--link 参数的格式为 --link name:alias,其中 name 是要链接的容器的名称,alias 是这个连接的别名。 通过这样处理后, web 应用连接数据库字符串的 server 就是 dbserver 了。

其他相关资料

https://www.jianshu.com/p/cf6e7248b6c7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Docker 入门笔记的更多相关文章

  1. Docker入门笔记

    Docker入门笔记 随笔记录初学Docker遇到的问题, 以免下次再犯. 本机系统Ubuntu18.04 安装 Docker有2个版本 Community Edition (CE) 社区版(免费) ...

  2. Docker入门笔记(1)

    Docker入门笔记(1) 1.安装Docker yum -y install docker-ce 2.查看Docker版本 [root@localhost ~]# docker -v Docker ...

  3. Centos7——docker入门(笔记)

    docker 入门(笔记) 一.Docker是什么? 官方原话: Docker provides a way to run applications securely isolated in a co ...

  4. Docker入门-笔记-1

    Docker入门 Docker 是 Golang 编写的, 自 2013 年推出以来,受到越来越多的开发者的关注.如果你关注最新的技术发展,那么你一定听说过 Docker.不管是云服务还是微服务(Mi ...

  5. 笔记 docker入门笔记

    安装sudo apt-get remove docker docker-engine docker-ce docker.iosudo apt-get updatesudo apt-get instal ...

  6. Docker入门笔记(Centos7)

    centos7 wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo vim docker-c ...

  7. docker入门与部署微服务--学习笔记

    最近公司进一步去windows,走向 linux+云化. 原来的一大坨windows虚拟机服务器都要转向linux, 既然走向linux的话,那么docker肯定是要涉足的. 故学习了docker入门 ...

  8. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  9. Docker入门命令

    Edit Docker入门命令 # 安装镜像sudo docker pull ubuntu:12.04# 镜像列表sudo docker images# 运行镜像sudo docker run -t ...

随机推荐

  1. 基于指纹考勤机的真实的PHP操作Access数据库成功案例(最终实现) 2011-11-2v

    听了我的建议,我们单位的食堂准备使用一台指纹考勤机统计吃饭人次,这样院里好给食堂的承包人以相应饭补.以前买过一台彩屏指纹机,数据库是access的,今儿又买了一台准备放到食堂里,而且考虑到停电,还特地 ...

  2. 停止调试 IIS 不退出

    在VS主面板打开:工具->选项->调试->编辑继续   取消选中[启用"编辑并继续"] 就可以(不过这是针对所有的调试). 若只想对单个项目进行设置,可以选择自己 ...

  3. 使用css弹性盒子模型

    提示: 当期内容不充实, 修改后再来看吧 以下称:弹性子元素: 子元素, 弹性容器: 容器 弹性盒子的属性 1. css弹性盒子模型规定了弹性元素如何在弹性容器内展示 2. 弹性元素默认显示在弹性容器 ...

  4. 阿里云短信接口python版本

    # -*- coding: utf-8 -*- #!/usr/bin/python #encoding=utf-8 import sys from aliyunsdkdysmsapi.request. ...

  5. 分享一个jquery插件,弥补一下hover事件的小小不足

    hover事件有一个缺点:当你的鼠标无意划过一个dom元素(瞬间划过,这个时候用户可能不想触发hover事件),会触发hover事件 应该设置一个时差来控制hover事件的触发 比如jd左边的菜单 你 ...

  6. MS SQL 2000 分配权限

    /** 分配权限 **/ use [master]create login [ln-tf\liaobin] from windows;gogrant control server to [ln-tf\ ...

  7. Overcoming Life's Obstacles - ASC 2017 March 03

    Overcoming Life's Obstacles - How a top oboist overcame a neurological disorder to play again ©Advan ...

  8. 一步一步学习Android开发

    一步步踏入Android的阵营. 疑惑篇: gravity和layout_gravity的区别

  9. Unix高级编程Note3

    [Unix高级编程Note3] 1.RECURSIVE锁可以递归,普通锁只会死锁 2.线程安全函数 3.线程私有数据 4.pthread_once 5.线程取消点 6.线程信号 7.pread 8.d ...

  10. Spring IOC容器启动流程源码解析(四)——初始化单实例bean阶段

    目录 1. 引言 2. 初始化bean的入口 3 尝试从当前容器及其父容器的缓存中获取bean 3.1 获取真正的beanName 3.2 尝试从当前容器的缓存中获取bean 3.3 从父容器中查找b ...