

部分内容摘自: < Docker技术入门与实践第3版 >
Docker镜像类似于虚拟机镜像 ,可以将它理解为一个只读的模板
例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了Apache(或用户需要的其他软件).可以把它称为 一个Apache镜像. 镜像是创建Docker容器的基础. 通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从上网上下载一个已经做好的应用镜像, 并直接使用.
Docker容器类似于一个轻量级的沙箱, Docker利用容器来运行和隔离应用.
容器是从镜像创建的应用运行实例. 它可以启动, 开始, 停止, 删除, 而这些容器都是彼此相互隔离的, 互不可见的. 可以把容器开看作一个简易版的Linux系统环境(包括root用户权限, 进程空间, 用户空间和网络空间等)以及运行在其中的应用程序打包而成的盒子.
Docker仓库类似于代码仓库, 是Docker集中存放镜像文件的场所.
有时候我们会将Docker仓库和仓库注册服务器(Registry)混为一谈, 并不严格区分. 实际上, 仓库注册服务器是存放仓库的地方, 其上往往存放着许多个仓库. 每个仓库集中存放某一类镜像, 往往包括多个镜像文件, 通过不同的标签(tag)来进行区分. 例如存放Ubuntu操作系统镜像仓库, 被称为Ubuntu仓库, 其中可能包括16.04, 18.04等不同版本的镜像. 根据所存储的镜像公开分享与否, Docker仓库可以分为公开仓库(Public), 和私有仓库(Private)两种形式. 目前最大的公开仓库是官方提供的Docker Hub, 其中存放者数量庞大的镜像供用户下载. 国内不少云服务器提供商(如 腾讯云, 阿里云等) 也提供了仓库 的本地源, 可以提供稳定的国内访问. 当然, 用户如果不希望公开分享自己的镜像文件, Docker也支持用户在本地网络内创建一个只能自己访问的私有仓库. 当用户创建了自己的镜像之后就可以使用push命令将它上传到指定的公有或者私有仓库. 这样用户下次在另外一台机器上 使用该镜像时, 只需要将其从仓库上pull下来就可以了.
容器: 共用宿主机内核,容器的第一个进程直接运行服务,损耗少,启动快,性能高.
容器虚拟化: 不需要硬件的支持. 不需要模拟硬件, 共用宿主机的内核, 启动时间秒级(没有开机启动的流程)
**总结: **
docker run -d -p 80:80 nginx:latest
docker run -it --name centos6 centos:6.9 /bin/bash
启动容器
docker run imahe_namedocker run === docker create + docker start停止容器
docker stop 容器id杀死容器
查看容器列表
docker ps 查看当前正在运行的容器 或者(docker container ls)docker ps -a查看所有状态的容器 或者(docker container ls -a)进入容器(目的, 调试, 排错)
查看所有容器的id
删除所有容器
docker rm 倒引号 docker ps -a -q 倒引号当我们在容器终端时, 我们退出容器, 并让容器在后台运行
我们可以使用docker attach 容器id返回容器
ctrl + p, ctrl + q,查看最新使用过的容器
退出容器
ctrl + ddocker容器内的第一个进程(初始命令)必须一直处于前台运行状态,否则这个容器, 就会处于退出状态!
1、原文件备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2、编辑源列表文件
sudo vim /etc/apt/sources.list
3、将原来的列表删除,添加如下内容(中科大镜像源)
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
电脑-pc ---> 虚拟机 ---> docker容器(多个)
端口映射
-v 卷名:/data
-v /src(宿主机的目录):/dist(容器的目录)

cat /etc/os-releasedocker run -it -p 22:22 centos:6.9 /bin/bashecho '123456'|passwd --stdin rootdocker run -it -d -p 22:22 centos6.9_ssh:v1 /usr/sbin/sshd -Ddocker run -it -d -p 80:80 -p 22:22 --name nginx_ssh centos6.9_ssh:v1 /bin/bashcurl -o /etc/yum.repos.d/CentOs-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repocurl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo