Docker 是一个开源的应用容器引擎,基于?Go 语言?并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),所以本次教程也是基于社区版CE
在讲到Docker之前,我们先了解虚拟机与容器之间的区别
???????????特性
| ? ? ? ? ? ? ? ? ????????容器 | ????????虚拟机 |
启动 | 秒级 | 分钟级 |
硬盘使用 | 一般为 MB | 一般为 GB |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
yum配置阿里云镜像源
1.备份源repo文件
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak/
2.获取阿里云镜像源文件
cd /etc/yum.repos.d
wget http://mirrors.aliyun.com/repo/Centos-7.repo
如果wget命令不存在,执行yum install wget,重新执行以上命令。
3.使用镜像文件
yum clean all
yum makecache
4.配置阿里云Docker Yum源
yum - config - manager -- add - repo http://mirrors.aliyun.com/docker- ce/linux/centos/docker - ce.repo
5.更新yum缓存(一定要更新缓存之后再进行安装)
yum makecache fast
6.安装docker-ce
yum - y install docker - ce
由于普通的下载镜像速度很慢所以我们可以配置阿里云为我们提供的镜像下载加速器
登录后进入我们的控制台
?依次点击找到容器镜像服务ACR
?进入后找到镜像加速器,将代码复制到命令行镜像配置
?配置好后可以通过命令进行查看
cat /etc/docker/daemon.json
在后面可以指定版本号,默认去掉:和版本号就是拉取最新,这里默认拉取最新
?docker pull nginx:(版本号)
查看当前容器中的镜像
docker images
删除容器?
docker rmi centos
docker rmi -f centos:latest
如果提示镜像被使用,需要先停止某个ID的容器,那么要先删除容器再删除镜像。或者强制删除镜像。 正确做法:先删除依赖该镜像的所有容器, 再来删除镜像?
docker create -it centos:latest
docker create -it --name centos01 centos:latest
centos:latest 即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。
另外,Docker会检查本地是否 存在指定的镜像, 不存在就从公有仓库下载 -it:是两个参数,-i:interactive容器具有交互功能,-t:容器将提供伪终端 --name:指定生成的容器的名字,允许空,如果不指定会自动生成
docker start 容器ID|name|name:tag
docker stop 容器ID|name|name:tag
docker restart 容器ID|name|name:tag
docker ps
docker ps -a?
docker rm 容器ID
docker rm -f 容器ID?
docker exec -it 容器ID/容器NAME /bin/bash
docker exec -it 容器ID/容器NAME bash (简写)?
退出时如果想继续运行容器:按顺序按【ctrl+p】,【ctrl+q】 如果不想继续运行:按【ctrl+d】或输入exit?
?在操作容器时,需要在当前docker镜像的目录下才能进行操作
systemctl status docker
systemctl start docker
systemctl stop docker
systemctl restart docker?
systemctl enable docker
systemctl disable docker
?