一、Docker概述
1、什么是Docker
Docker是世界领先的软件容器化平台
Docker公司开发,开源,托管在github
跨平台,支持Windows、MacOS、Linux
名词:
-
镜像:Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
-
容器:容器的实质是进程;容器技术从本质上讲是将程序隔离、打包的技术,类比:简易Linux
-
仓库: 存镜像,一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
2、为什么要用Docker
二、Docker安装
Linux版本信息:
1、卸载旧版本
较旧的Docker版本称为docker或docker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
/ var / lib / docker /的内容(包括映像,容器,卷和网络)被保留。 Docker Engine软件包现在称为docker-ce。
可以选择删除:
$ sudo rm -rf /var/lib/docker
2、安装方式
1、使用官方安装脚本自动安装
国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
2、手动安装
使用 Docker 仓库进行安装
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
$ sudo yum install -y yum-utils
#使用阿里云镜像地址
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Docker卸载
1、卸载Docker Engine,CLI和Containerd软件包:
$ sudo yum remove docker-ce docker-ce-cli containerd.io
2、主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:
$ sudo rm -rf /var/lib/docker
必须手动删除所有已编辑的配置文件。
配置阿里镜像加速
1、准备工作
2、配置Docker配置文件,镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["你的加速地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
二、Docker运行流程
Docker底层原理
1、Docker是如何运行的
2、Docker为什么比虚拟机快
1、Docker有着比虚拟机更少的抽象层
2、Docker用的是宿主机的内核,不用重新加载一个操作系统的内核
Docker容器 | 虚拟机(VM) | |
---|---|---|
操作系统 | 与宿主机共享OS | 宿主机OS上运行宿主机OS |
存储大小 | 镜像小,便于存储与传输 | 镜像庞大(vmdk等) |
运行性能 | 几乎无额外性能损失 | 操作系统额外的cpu、内存消耗 |
移植性 | 轻便、灵活、适用于Linux | 笨重、与虚拟化技术耦合度高 |
硬件亲和性 | 面向软件开发者 | 面向硬件运维者 |
三、Docker常用命令
1、帮助命令:
docker version #查看版本信息
docker info #显示docker镜像容器信息
docker --help #查看Docker命令
2、镜像的基本命令
1、查看本地镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]
2、搜索镜像
docker search [OPTIONS] TERM
3、下载镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]tag:版本
4、删除镜像
1、删除指定镜像
docker rmi -f 镜像ID/镜像名称
2、删除全部镜像
docker rmi -f $(docker images -aq) #删除全部镜像
3、容器的基本命令
有了镜像才可以创建容器
1、新建容器并启动
docker run [可选参数] image
参数:
--name-"Name" 容器名称,用来区分容器
-d 后台方式运行
-it 指定容器的端口
-p 指定容器的端口 -p 8080:8080
-p 主机端口:容器端口
-p 容器端口
容器端口
-p 随机指定端口
2、进入容器
docker run -it 镜像名 /bin/bash(启动目录)
3、退出容器
不停止容器,退出
Ctrl+p+q
停止退出
exit
4、查看容器进程
docker ps
5、删除容器
docker rm 容器ID #不能删除在运行的容器
docker rm -f $(docker ps -aq) #删除所有的容器
6、启动停止容器
docker start 容器ID
docker restart 容器ID #重启
docker stop 容器ID
docker kill 容器ID 强制停止
7、其他命令
docker run -d 镜像
#docker 后台运行 必须要有一个前台进程,如果没有前台应用就会自动停止
查看日志
docker logs
查看进程
docker top 容器id
查看进程元数据
docker inspect 容器id
从容器拷贝文件到主机
docker cp 容器id:容器内的路径 目前主机路径
可视面板
文档:https://hub.docker.com/r/portainer/portainer