目录
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