前言
- 什么是Docker
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker与虚拟机对比
-
虚拟机
资源占用多,虚拟机会独占一部分内存和硬盘空间。它运行的时候,其他程序就不能使用这些资源了。哪怕虚拟机里面的应用程序,真正使用的内存只有 1MB,虚拟机依然需要几百 MB 的内存才能运行。
冗余步骤多,虚拟机是完整的操作系统,一些系统级别的操作步骤,往往无法跳过,比如用户登录。
启动慢,启动操作系统需要多久,启动虚拟机就需要多久。可能要等几分钟,应用程序才能真正运行。
-
Docker
启动快,容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。
资源占用少,容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完整的操作系统,不可避免要占用所有资源。另外,多个容器可以共享资源,虚拟机都是独享资源。
体积小,容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件要小很多。
-
学习注意事项
1.Centos6安装Docker和Centos7安装有所区别
2.本文讲解的是Centos7的安装,所以注意您的操作系统
3.学习Docker之前的知识储备(Linux、Maven)
4.官方安装文档 https://docs.docker.com/install/linux/docker-ce/centos
安装
环境准备
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
yum install -y yum-utils
设置镜像仓库并安装
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
dnf makecache
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable docker --now
常用命令
systemctl start docker
systemctl stop docker
systemctl enable docker
docker version
docker info
容器设置
设置容器信息可参考Docker容器配置
一键安装
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable docker --now
docker version
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://uoxl1bwy.mirror.aliyuncs.com"
],
"exec-opts":[
"native.cgroupdriver=systemd"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file":"3"
},
"insecure-registries": [
"image.xujun.org:80",
"nexus.xujun.org:8088"
],
"storage-driver": "overlay2"
}
EOF
systemctl daemon-reload
systemctl restart docker
docker info
dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
dnf install -y yum-utils
dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dnf makecache
dnf install -y docker-ce docker-ce-cli containerd.io
systemctl enable docker --now
docker version
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://uoxl1bwy.mirror.aliyuncs.com"
],
"exec-opts":[
"native.cgroupdriver=systemd"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file":"3"
},
"insecure-registries": [
"image.xujun.org:80",
"nexus.xujun.org:8088"
],
"storage-driver": "overlay2"
}
EOF
systemctl daemon-reload
systemctl restart docker
docker info