Docker2022尚硅谷笔记

1.Docker安装

查看版本是否是centos7以上 cat /etc/redhat-release

配置可以参考官网

docker官网

linux安装docker 菜鸟教程 linux在线安装docker_linux安装docker 菜鸟教程

执行以下命令

//安装相关的环境
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

linux安装docker 菜鸟教程 linux在线安装docker_Docker_02

  • 执行version命令后出现这个代表安装成功

linux安装docker 菜鸟教程 linux在线安装docker_bc_03

  • 执行安装完的命令行后;进行阿里云的配置

可以执行 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

linux安装docker 菜鸟教程 linux在线安装docker_docker_04

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需要注意如下几点

linux安装docker 菜鸟教程 linux在线安装docker_bc_05

  • 启动交互式容器命令
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重要且常见的命令
  • 启动守护式容器

linux安装docker 菜鸟教程 linux在线安装docker_Docker_06

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