Docker2022尚硅谷笔记
1.Docker安装
查看版本是否是centos7以上 cat /etc/redhat-release
配置可以参考官网
执行以下命令
//安装相关的环境
yum -y install gcc
yum -y install gcc-c++
//安装所需要的软件包
yum install -y yum-utils
//这里注意要于官网不同的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
//安装Docker Ce
yum -y install docker-ce docker-ce-cli containerd.io
//启动Docker
systemctl start docker
//测试docker
docker version
docker run hello-world
//以下是卸载docker命令
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm-rf /var/lib/docker
rm-rf /var/lib/containerd
- 执行version命令后出现这个代表安装成功
- 执行安装完的命令行后;进行阿里云的配置
可以执行 cd /etc/docker 如果没有这个文件;需要在etc下创建一个docker文件夹
mkdir -p /etc/docker
- 配置阿里云服务器【地址最好配置成自己的】
//黏贴运行
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://i02mtib6.mirror.aliyuncs.com"]
}
EOF
//在重启服务器
systemctl daemon-reload
systemctl restart docker
1.2Docker run干了什么
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S4Mj8EiR-1659759972365)(C:\Users\裴承林\AppData\Roaming\Typora\typora-user-images\image-20220805215146776.png)]
docker为什么比虚拟机快的原因
- (1)docker有着比虚拟机更少的抽象层
由于docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。 - (2**)docker利用的是宿主机的内核,而不需要加载操作系统OS内核**
当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。
2.Docker常用命令
有镜像才能创建容器,这是根本前提,查看镜像docker images
- 查看当前docker是否有镜像
docker search [镜像]:[版本号]
//不写版本号默认是最新的lastest
- 拉去镜像
docker pull [镜像名]:[版本号]
- 删除镜像
docker rmi [镜像名]
- 新建+启动容器:docker run[options] images [command] [args]
- 这里options需要注意如下几点
- 启动交互式容器命令
docker images
docker run -it centos /bin/bash //启动centos终端交互
//退出终端、
exit
- 列出当前正在运行的容器
docker ps [options] //options include [a l n q]
docker ps -n 2 //最进运行的两个
docker ps -a //列出当前所有正在运行的容器+历史上运行过的
- 退出容器的两种方式
exit //run进去容器,exit直接退出,容器停止
ctrl + p + q //run进去,推出后,容器不停止
- 启动已停止运行的容器
docker start 容器ID或者容器名
//停止容器名
docker stop 容器id或容器名
//重启容器
docker restart 容器ID或容器名
//删除以停止的容器
docker rm 容器ID
2.1重要且常见的命令
- 启动守护式容器
docker run -d 容器名
- 对比启动redis的两种
//前台交互式启动
docker run -it redis:6.0.8
//后台守护式启动
docker run -d redis:6.0.8
- 查看容器日志
docker logs 容器ID
- 查看容器内运行的进程
docker top 容器id
- 查看容器内部的细节
docker inspect 容器id
2.2进入正在运行的容器并以命令行进行交互
//1.正在运行的容器进入
docker exec -it 容器id /bin/bash
//2.第二种重新进入docker attach 容器id
两种的区别是,attach进入后,执行exit就是真的直接退出了
2.3拷贝镜像文件或者备份
- 拷贝镜像文件
docker cp 容器id : 容器内路径 目的路径
- 导入于导出
docker export id >abc.tar.gz //导出文件
cat abc.tar.gz | docker import - atguigu/ubuntu:2.1
真的直接退出了
2.3拷贝镜像文件或者备份
- 拷贝镜像文件
docker cp 容器id : 容器内路径 目的路径
- 导入于导出
docker export id >abc.tar.gz //导出文件
cat abc.tar.gz | docker import - atguigu/ubuntu:2.1