目录
Docker简介
Docker定义
Docker
是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux
或Windows
操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker和虚拟机技术的不同:
传统虚拟机虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件。
容器内的应用直接运行在宿主机的内核,容器是没有自己的内核。
Docker组成
镜像(image)
Docker镜像(Image
)就是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建很多容器。
容器(container)
Docker利用容器(Container
)独立运行一个或一组应用。容器是使用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台,容器是一个简易版的Linux
环境和运行在其中的应用程序。
仓库(Repository)
仓库(Repository
)是集中存放镜像文件的场所。仓库(Repository
)和仓库注册服务器(Registry
)是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag
)。仓库分为公开仓库(Public
)和私有仓库(Private
)两种形式。最大的公开仓库是Docker Hub
(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云、网易云等。
Docker命令
Docker
安装使用的宝塔面板
docker默认工作路径/var/lib/docker
//启动docker systemctl start docker //查看docker版本 docker version //运行docker docker run hello-world //查看镜像 docker images
镜像命令
docker images //镜像的仓库源,镜像的标签,镜像的id,镜像的创建时间,镜像的大小 REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest feb5d9fea6a5 14 months ago 13.3kB docker images -a --all#列出所有镜像 -q --quiet #只显示镜像的id --help #命令帮助 docker search #搜索镜像 docker pull #下载镜像 docker rmi #镜像删除 -f #删除所有的 $(条件)
容器命令
docker run -d --name nginx1 -p 3344:80 nginx -d #后台运行 --name #名字 -it #交互模式 -p #宿主机端口:容器内部端口 docker run -it 容器id/名字 /bin/bash #进入容器 -d 后台启动 docker exec -it 容器id /bin/bash #进入正在运行的容器 docker exec -it 容器id/name bash #进入正在运行的容器 docker attach 容器id exit #退出容器 docker ps #查看运行的容器 -a #查看曾经运行的容器 Ctrl +P +Q #容器不停止退出 docker rm 容器id #删除容器 docker rm -f $(docker ps -aq)#删除所有的容器 docker start/restart/stop/kill 容器ID #启动重启停止 docker inspect 容器id #查看容器信息
日志和进程
查看最近日志
docker logs -f 容器名/容器ID
查看某时间之后的100条日志
docker logs -f -t --tail 100 容器ID
最近30分钟的日志
docker logs
查看某时间之后的日志
docker logs -t --since="2022-08-08T18:08:08" 容器ID
查看某时间段日志
docker logs -t --since="2022-08-08T18:08:08" --until "2022-08-08T20:08:08" 容器ID
docker top 容器id #查看容器内部进程
文件copy
从docker容器拷贝出来 /xxx代表容器内的路径 /xxx代表容器外的路径
docker cp 容器ID: /xxx /xxx
拷贝文件到容器内 /xxx容器外的路径 /xxx容器内的路径
sudo docker cp /xxx 容器ID:/xxx