一、Docker简介
- 什么是docker:
docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上, 也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口 - 什么是容器:一个容器就相当于一个虚拟机
- 为什么使用docker
1.提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境
2.提供弹性的云服务。因为 Docker容器可以随开随关,很适合动态扩容和缩容
3.组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构 - docker和虚拟机区别
隔离级别: docker进程级(隔离策略-CGroups) 虚拟机内核级(隔离策略-Hypervisor)
启动时间:docker容器-秒级, 虚拟机-分钟级
群集规模:docker容器-上万 虚拟机-上百
硬盘储存: docker容器-MB 虚拟机-GB
系统资源利用率:docker容器0-5% 虚拟机5-15%
高可用策略: 虚拟机-备份、容灾、迁移 docker-弹性、动态、负载
最快捷安装(推荐):
sudo yum remove docker docker-common docker-selinux docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
安装docker加速器:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [
“https://docker.mirrors.ustc.edu.cn”,
“https://hub-mirror.c.163.com”,
“https://docker.nju.edu.cn”,
“https://mirror.ccs.tencentyun.com”,
“https://docker.1panel.live”
]
}
EOF
重启docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
验证是否生效:docker info | grep -i mirror
看到 Registry Mirrors: 后面有地址,就成功了
其他方法
二、Docker安装方法
官网教程方法(一般默认安装到centos7系统上)
centos7官网教程安装方法: https://docs.docker.com/engine/install/centos/
ubanan官网教程安装方法:https://docs.docker.com/engine/install/ubuntu/查看内核版本(前提是必须是大于等于3.8):
uname -r- 如果有之前安装过的先卸载干净
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine- 先设置一个yaml远程仓库
sudo yum install -y yum-utils sudo yum-config-manager --add-repohttps://download.docker.com/linux/centos/docker-ce.repoTips:如果sudo yum install -y yum-utils报很多404(没有则跳过),如下
就先执行下面这个命令再执行第3步
wget-O/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo- 安装docker引擎(有y按y)
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin如果这一步执行报如下错误,参考上一篇博客:报如下错解决方法
如没有如下报错跳过执行第5步
- 启动docker
sudo systemctl start docker- 试用docker命令(从远程仓库拉取并运行,先查看本地有没有hello-world,如果没有去远程仓库拉取并运行)
sudo docker run hello-world或者使用(查看版本信息):
docker version
返回上图内容代表安装成功
三、docker加速
Tips:因为远程仓库在国外-安装包都在远程仓库,安装镜像比较慢,使用国内的镜像源替换
阿里云镜像地址及配置方法:阿里云加速地址教程
第一种方法:直接执行如下代码
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors":["https://c8ldi73s.mirror.aliyuncs.com"]}EOF或者
sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json<<-'EOF' { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ] } EOF完成后需要重启虚拟机
sudosystemctl daemon-reloadsudosystemctl restartdocker第二种方法
- 在/etc/docker目录下新建daemon.json文件,加入以下内容,保存
{"registry-mirrors":["https://c8ldi73s.mirror.aliyuncs.com/","https://registry.docker-cn.com","http://fl36db2.m.daocloud.io","https://docker.mirrors.ustc.edu.cn","https://v2c6fjn8.mirror.aliyuncs.com"]}- 查看:docker info 结尾有下列内容代表镜像替换成功
- 重启服务使其生效
systemctl daemon-reloadsystemctl restart docker四、docker安装方式二
Docker 要求 CentOS 系统的内核版本高于 3.10
uname -r #查看系统版本
- 安装需要的软件包
yum-util 是yum仓库管理扩展工具包,即它提供了yum-config-manager功能
另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2- 添加yum源(二选一)
yum-config-manager --add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo- 更新yum缓存
yum makecache fast- 查看仓库中docker的版本,选择对应的版本安装
列出并排序存储库中可用的版本。按版本号(从高到低)对结果进行排序
yum list docker-ce --showduplicates | sort -r- 安装docker(二选一)
方式一:安装最新版–推荐
yum install -y docker-ce方式二:安装指定版
命令为:yum install docker-ce-版本号(如我选:17.12.1.ce)
yum install docker-ce-17.12.1.ce- 启动Docker
systemctl start docker- 加入开机启动
systemctlenabledocker- docker加速方法和上面一致
五. 验证是否安装成功
注:有client和service两部分表示docker安装启动都成功了,命令中间不需要
- 打印版本
docker version- 拉取一个hello-world镜像试试是否可以成功
dockerpull hello-world- 显示如下代表可以正常拉取,docker可以正常使用啦
步骤总结:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo yum makecache fast sudo yum -y install docker-ce sudo systemctl start docker sudo systemctl enable docker docker version六、docker简单命令
停止容器:docker stop 容器名称
启动容器:docker start 容器名称
删除容器:docker rm 容器ID或者容器名称
查看启动的容器:docker ps
查看所有容器: docker ps -a
启动并运行一个容器:docker run --name centos_test centos:7
强制删除在运行的容器:docker rm -f 容器ID或者容器名称
查看容器日志:docker logs 容器ID或容器名称
进入容器内部:docker exec -it 容器名称 /bin/bash 或docker exec -it 容器名称 /bin/sh
备注: 容器名称都可以用容器id前3位代替,例如停止容器,docker stop 3e4
删除镜像先把对应的容器停止或删除
查看镜像: docker images