------------恢复内容开始------------
什么是Docker:
docker是一个开源的应用容器引擎,是基于go语言并遵循人Apache2.0协议开源。
docker容器是完全使用沙箱制,相互之间不会有任何接口,(类似ipone的app),更重要的是容器性能开销极低
docker的应用场景:
web应用的自动化打包与发布
自动化测试和持续集成,发布
在服务型环境中部署和调整数据库或其他的后台应用
从头编译或者拓展现有的Openshift或cloud Foundry 平台来搭建自己的PaaS环境
docker的优点:
用于开发,交付和运行应用程序的开放平台,docker能够将应用程序与基础架构分开,从而可以快速交付软件。借助docker可以管理应用程序相同的方式来管理基础架构。通过利用docker的方法来快速交付,测试和部署代码,可以大大减少编写代码和生产环境的中运行代码之间的延迟
1. 快速,一致地交付应用程序
2.响应式部署和扩展
3.在同一硬件上运行更多工作负载
docker的安装:(Ubuntu下)
如果有旧版本的docker,请先卸载后再执行安装命令
卸载指令:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
sudo apt-get remove docker docker-engine docker.io containerd runc
1. 更换国内软件源。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list sudo apt update
2.安装需要的包
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
sudo apt install apt-transport-https ca-certificates software-properties-common curl
3.添加GPG密钥,并添加Docker-ce 软件源,还是以中国科技大学的Docker-ce源为例
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
4.添加成功后更新软件包缓存
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
sudo apt update
5.安装Docker-ce
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
sudo apt install docker-ce
6.设置开机自启动并启动Docker(安装成功后默认已设置并启动,可忽略)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
sudo systemctl enable docker
sudo systemctl start docker
7.测试运行
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
sudo docker run hello-world
8.添加当前用户到Docker用户组,可以不用sudo运行docker(可选)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
sudo groupadd docker
sudo usermod -aG docker $USER
9.测试添加用户组
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
docker run hello-world
Docker的使用:
1.在容器内运行程序,比如使用 docker run 命令来在容器内运行一个应用程序
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
docker run ubuntu:15.10 /bin/echo "hello world" hello world 参数解析: 1. docker : Docker的二进制执行文件 2. run : 与前面的docker组合来运行一个容器 3. ubuntu15.10 指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker就会从镜像仓库Docker Hub 下载公共镜像。(也就是你安装的ubuntu版本号) 4. /bin/echo "hello world" : 在启动的容器里执行的命令 上述命令完整意思可以解释为:DOcker以ubuntu15.10镜像创建一个新容器,然后再容器中执行bin/echo "hello world", 然后输出执行结果
2. 运行交互式的容器
通过docker的两个参数 -i -t , 让docker运行的容器实现 ” 对话 “ 的能力
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
docker run -i -t ubuntu:15.10 /bin/bash 参数解析 -t : 在新容器内指定一个伪终端或终端。 -i : 允许你对容器内的标准输入 (STDIN) 进项交互 执行完成后,会进入到一个ubuntu15.10 系统的容器中
3. 查看版本信息和当前目录下的文件列表
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
(在容器模式下) 查看版本号 : cat /proc/versio 查看当前目录下的文件列表 : ls
4. 退出容器
使用exit,或者ctrl + D
5. 启动容器(后台模式)
创建一个以进程方式运行的容器
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
(ubuntu终端) docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" 在输出中,并不会出现期望的“hello world” 而是一长串字符 这串长字符串叫做容器ID ,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么 首先,我们需要确认容器有在运行,可以通过docker ps 来查看 docker ps 输出结果: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 39771f265f7f ubuntu:18.04 "/bin/sh -c 'while t..." 7 minutes ago Up 7 minutes unruffled_swirles
输出详情介绍 :
CONTAINER ID:容器 ID
IMAGE: 使用的镜像
COMMAND:启动容器时运行的命令
CREATED:容器创建的时间
STATUS:容器状态
状态有七种:
created :已创建
restaring:重启中
running:运行中
removing:迁移中
paused:暂停
exited:停止
dead :死亡
PORTS:容器的端口信息
------------恢复内容结束------------