Docker基础
安装与卸载
- 卸载docker
- 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
- 删除资源
rm -rf /var/lib/docker
/var/lib/docker是docker默认资源路径
- 卸载依赖
- 需要的安装包
yum install -y yum-utils
- 设置镜像仓库
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新yum软件包索引
yum makecache fast
- 安装相关
yum install docker-ce docker-ce-cli containerd.io
配置
-
启动Docker
systemctl start docker
-
测试Docker是否安装成功
docker run hello-world
-
查看镜像
docker images
-
阿里云镜像加速
#1 新建目录
mkdir -p /etc/docker
#2 配置阿里云地址
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":["http://qiyb9988.mirror.aliyuns.com"]
}
EOF
#3 重启
systemctl daemon-reload
systemctl restart docker
底层原理
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问,DockerServer接收到Docker-Client的指令,就会执行。
镜像
镜像是一个轻量的独立的可执行的软件包。包含程序运行的时候所需的一切:代码,运行时间,系统工具,系统库和设置
容器
Docker利用容器来运行应用,容器是从镜像创建的运行实例,它可以被启动、开始、停止、删除、每个容器都是相互隔离的
仓库
存储镜像文件的地方
容器 VS 虚拟机
维度 | container | VM |
---|---|---|
大小 | 几百K-几M级别 | 几G-几十G级别 |
性能 | 几乎与物理机一致 | 虚拟化层损耗 |
迁移 | 跨平台,共享,轻量 | 多平台,异构,文件大 |
启动时间 | 秒级 | 分钟级 |
系统支持量 | 单机支持上千个容器 | 一般为几十个 |
Docker的优点
- 更快的交付于部署
- 高效的资源利用与隔离
- 环境标准化和版本控制
- 更轻松的迁移和扩展
- 更简单的维护更新管理
Docker的常用命令
帮助命令
docker version #显示版本信息
docker info #显示系统信息,包括镜像和容器数量
docker 命令 --help #帮助命令
帮助文档地址:
http://docs.docker.com/engine/reference/commandline/
镜像命令
docker images
查看本地主机上的镜像
docker search
搜索镜像
docker pull 镜像名[:tag]
下载镜像 (不写tag,默认是latest)
docker rmi -f 容器id
删除镜像
docker rmi -f $(docker images -aq)
删除全部镜像
容器命令
说明:有了镜像才可以创建容器,Linux下载一个centos镜像来测试学习
docker pull centos
- 新建容器并启动
docker run [参数] image
# 测试启动并进入容器
docker run -it centos /bin/bash
# 参数说明
--name="Name" 容器名字,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080:8080
-P 随机指定端口
进入容器:docker exec -it nginx01 /bin/bash
- 列出所有的运行的容器
docker ps [参数]
# 参数说明
-a #列出当前运行容器+历史运行容器
-n=? #显示最近创建的容器
-q #只显示容器编号
- 退出容器
exit #容器停止并退出
Ctrl + p + q #容器不停止退出
- 删除容器
docker rm 容器id #删除指定容器,不能删除正在运行的
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 #强制停止当前容器
常用其他命令
docker run -d 镜像名 #后台启动容器
docker logs -tf --tail 10 容器id #查看日志
docker top 容器id #查看容器中进程信息
docker inspect 容器id #查看镜像元数据
docker exec -it 容器id bashShell #进入容器|后开启新终端,可以在里面操作(常用)
docker attach 容器id #进入容器|正在执行的终端,不会启动新进程
docker cp 容器id:容器内路径 目的地主机路径 #从容器内拷贝文件到主机上