Docker概述
Docker思想来自于集装箱,打包装箱,每个箱子都是相互隔离的;通过隔离机制,可以将服务器利用到极致
Docker中的名次概念
镜像(image)
docker镜像好比一个模板,可以通过这个模板来创建容器服务,centos镜像->run->centos01容器;通过这个镜像可以创建多个容器(最终使用的就是镜像创建出的容器)
容器(container)
Docker利用容器技术,独立运行一个或者一个组的应用,容器是通过镜像来创建的。
启动、停止、删除 基本命令
可以将一个容器理解为一个简易的linux系统,可以在这个简易的linux系统里安装我们需要的软件,运行我们的项目等等
仓库(repository)
仓库就是存放镜像(image)的地方
仓库分为私有仓库和公有仓库(默认Docker Hub)
在最初使用时候,我们可以将仓库设置为国内仓库提升下载速度
Docker安装
本次实例使用机器为阿里云的服务器,操作系统为centos 7.6
Docker的安装步骤:
#1.安装前,我们将旧版本的docker进行卸载
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#2.需要的安装包
yum install -y yum-utils
#3.设置镜像仓库(阿里云)
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#4.在安装前我们更新一下yum软件版索引
yum makecache fast
#5.下载安装docker相关 docker-ce为社区版,docker-ee为企业版
yum install docker-ce docker-ce-cli containerd.io
#6.启动docker
systemctl start docker
#7.检查安装是否成功
docker version
#8.配置阿里云镜像加速(个人专属)
#阿里云->容器镜像服务->控制台->镜像工具->镜像加速器->选择自己对应的操作系统进行复制
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://fyshm8qx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker卸载:
#1.卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
#2.删除资源
rm -rf /var/lib/docker
docker run的运行流程
底层原理
Docker是怎么工作的?
Docker是一个Client - Server 结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问;当DockerServer接收到Docker - Client 的指令,就会执行这个命令
Docker为什么比VM快?
Docker有着比虚拟机更少的抽象层,Docker利用的是宿主机的内核,而VM需要是Guest OS
Docker基本命令
帮助命令
docker version #显示docker的版本信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help
镜像命令
docker images -aq #查看所有本地主机上的镜像,q只查看id
docker search #搜索镜像,可通过--filter进行过滤
docker pull #下载镜像,在pull后加:版本号可指定版本下载
docker rmi -f #删除镜像,在后面加$(docker images -aq)删除所有镜像
创建容器
docker run [可选参数] image #运行镜像
#参数说明
# --name="Name" 容器名字 centos01 centos02 ,用来区分容器
# -d 后台方式运行
# -it 使用交互方式运行,进入容器查看内容
# -p 容器指定端口, -p 8080:8080
# -p 主机端口:容器端口
# -p 容器端口
# -p 主机ip:主机端口:容器端口
# -P 随机指定端口
docker run -d 镜像名
#问题:在运行之后,使用docker ps命令查看发现运行的镜像停止了
#原因:docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
容器命令
#创建一个centos容器并进入
docer run -it centos /bin/bash
#从容器中退回主机,退出后容器会停止
exit
#从容器中退回主机,退出后容器不停止
control + P + Q
#查看所有运行的容器
docker ps
# -a 列出当前运行+历史运行过的容器
# -n=? 显示最近?条创建的容器
# -q 只查询容器id
docker rm 容器id #删除指定容器,不能删除正在运行的容器,如要删除使用 rm -f 强制删除
docker rm -f $(docker ps -aq) #删除所有容器
docker ps -a -q|xargs docker rm #删除所有容器
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行容器
docker kill 容器id #强制停止当前容器
其他常用命令