docker
宝塔缺点:
1.强制收集手机号
2.对系统的要求较高,必须要求是纯净的系统
3.资源占用率高,导致服务器性能下降
4.不够灵活,更新软件很麻烦,可选软件版本少
5.安全性问题,会出现漏洞
6.容易导致兼容性问题
7.付费功能过多,免费用户功能受限
什么是docker
Docker 是一个开源的容器化平台,用于轻松创建、部署和运行应用程序。它允许开发者将应用程序和其依赖项封装在一个称为容器的独立单元中,这些容器可以在不同的环境中进行移植和运行。以下是 Docker 的一些关键概念和用途:
- 容器化技术:Docker 使用容器化技术,允许开发者将应用程序、运行时环境和所有依赖项打包到一个容器中。这个容器可以在任何支持 Docker 的系统上运行,确保了应用程序在不同环境中的一致性。
- Docker 镜像:Docker 镜像是容器的模板,包含了应用程序和其依赖项。镜像可以通过 Dockerfile 来创建,并可以分享给其他开发者或部署到不同的环境中。
- 容器管理:Docker 提供了一组命令和工具,用于创建、启动、停止和管理容器。这使得容器的部署和管理变得非常简单。
- 容器编排:Docker 还提供了容器编排工具,如 Docker Compose 和 Kubernetes,用于管理多个容器的部署和协作。
- 跨平台:Docker 支持多种操作系统,包括 Linux、Windows 和 macOS,因此可以在不同的平台上运行容器。
- 开源社区:Docker 是一个开源项目,拥有庞大的社区支持和生态系统。这意味着有大量的容器镜像和工具可供使用。
Docker 已经成为现代应用程序开发和部署的重要工具,因为它可以加速开发、简化部署,并提供了一种高度可移植的方式来管理应用程序和其依赖项。
Docker的优点包括:
- 轻量级和高效性:Docker容器共享主机操作系统的内核,因此比传统虚拟机更轻量级,启动更快,资源利用更高效。
- 可移植性:Docker容器可以在不同的环境中运行,无论是在开发、测试还是生产环境,都能够保持一致性。
- 版本控制:Docker允许您将应用程序和其依赖关系打包成一个容器,因此可以轻松地管理和追踪不同版本的应用程序。
- 易于扩展:Docker容器可以根据需要进行扩展,从而实现更高的可伸缩性和性能。
- 隔离性:Docker使用容器技术实现进程隔离,每个容器都有自己的文件系统和网络空间,因此应用程序之间互不干扰。
- 生态系统:Docker拥有庞大的生态系统,有丰富的容器镜像和工具,可以加速应用程序的开发和部署过程。
- 快速部署和更新:Docker容器可以快速部署和更新,使持续集成和持续部署变得更加容易。
- 资源隔离:Docker可以为每个容器分配特定的资源限制,确保应用程序之间的资源争用问题得到解决。
总的来说,Docker是一种强大的容器化平台,可以帮助开发人员更轻松地构建、打包、部署和管理应用程序,提高了开发和运维的效率。
Docker的三大核心概念:❑ 镜像(Image)❑ 容器(Container)❑ 仓库(Repository)
只有理解了这三个核心概念,才能顺利地理解Docker容器的整个生命周期。
-
Docker镜像
Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。
例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了Apache应用程序(或用户需要的其他软件)。
可以把它称为一个Apache镜像。镜像是创建Docker容器的基础。通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用。
-
Docker容器
Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。
容器是从镜像创建的应用运行实例。它可以启动、开始、停止、删除,而这些容器都是彼此相互隔离、互不可见的。可以把容器看作一个简易版的Linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等)以及运行在其中的应用程序打包而成的盒子。
注意镜像自身是只读的。容器从镜像启动的时候,会在镜像的最上层创建一个可写层。
-
Docker仓库
Docker仓库类似于代码仓库,是Docker集中存放镜像文件的场所。
有时候我们会将Docker仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器是存放仓库的地方,其上往往存放着多个仓库。每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签(tag)来进行区分。例如存放Ubuntu操作系统镜像的仓库,被称为Ubuntu仓库,其中可能包括16.04、18.04等不同版本的镜像。仓库注册服务器的示例如图2-1所示。
根据所存储的镜像公开分享与否,Docker仓库可以分为公开仓库(Public)和私有仓库(Private)两种形式。
目前,最大的公开仓库是官方提供的Docker Hub,其中存放着数量庞大的镜像供用户下载。国内不少云服务提供商(如腾讯云、阿里云等)也提供了仓库的本地源,可以提供稳定的国内访问。
当然,用户如果不希望公开分享自己的镜像文件,Docker也支持用户在本地网络内创建一个只能自己访问的私有仓库。
当用户创建了自己的镜像之后就可以使用push命令将它上传到指定的公有或者私有仓库。这样用户下次在另外一台机器上使用该镜像时,只需要将其从仓库上pull下来就可以了。
注意: 可以看出,Docker利用仓库管理镜像的设计理念与Git代码仓库的概念非常相似,实际上Docker设计上借鉴了Git的很多优秀思想。
dockerfile docker-compose docker插件
docker操作
#启动
systemctl start docker
#停止
systemctl stop docker
#状态
systemctl status docker
#允许开机启动
systemctl enable docker
chkconfig docker on
#重启
systemctl restart docker
docker常用命令
#info|version
docker info #显示docker的系统信息,包括镜像和容器的数量
docker version #显示docker的版本信息。
#帮助命令
docker 命令 --help #帮助命令
#镜像命令
docker images #查看所有本地主机上的镜像 可以使用docker image ls代替
docker search #搜索镜像
docker pull #下载镜像 docker pull redis :xx.xx
docker rmi #删除镜像 docker rm imageId/redis:xx.xx
#容器命令
docker run 镜像id #新建容器并启动 -i: 交互式操作 -t: 终端。 -d后台 docker run -it --name=redis redis /bin/bash exit退出
docker ps #列出所有运行的容器 docker container list
docker exec #进入当前容器后开启一个新的终端,可以在里面操作。(常用)
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 #强制停止当前容器
#退出容器
exit #容器直接退出
ctrl +P +Q #容器不停止退出 ---注意:这个很有用的操作
#其他常用命令
docker run -d 镜像名 #后台启动命令
docker logs 容器id #查看日志
docker top 容器id #查看容器中进程信息ps
docker inspect 容器id #查看容器的元数据
docker attach 容器id # 进入容器正在执行的终端
docker cp 容器id:容器内路径 主机目的路径 #从容器内拷贝到主机上
#容器卷
docker run -it --name=c1 -v /home/linux:/home centos
docker命令大全
docker attach #连接到正在运行中的容器
docker build #使用 Dockerfile 创建镜像
docker builder #管理builds
docker builder prune #清除build缓存
docker checkpoint #管理checkpoints
docker checkpoint create #从正在运行的容器创建检查点
docker checkpoint ls #列出容器的检查点
docker checkpoint rm #删除指定的检查点
docker commit #从容器创建一个新的镜像
docker config #管理Docker配置
docker config create #创建配置文件
docker config inspect #查看配置文件信息
docker config ls #显示docker里已经保存得配置文件
docker config rm #删除配置文件
docker container #管理容器
docker container prune #删除所有已停止的容器
docker context #管理contexts
docker context create #创建一个上下文
docker context export #将上下文导出到tar或kubecconfig文件中
docker context import #从tar或zip文件导入上下文
docker context inspect #在一个或多个上下文上显示详细信息
docker context ls #列出上下文
docker context rm #删除一个或多个上下文
docker context update #更新
docker context use #设置当前docker的上下文
docker cp #用于容器与主机之间的数据拷贝
docker create #创建一个新的容器但不启动它
docker diff #检查容器里文件结构的更改
docker events #从服务器获取实时事件
docker exec #在运行的容器中执行命令
docker export #将文件系统作为一个tar归档文件导出到STDOUT
docker history #查看指定镜像的创建历史
docker image #管理镜像
docker image inspect #显示一个或多个镜像的元数据
docker image ls #列出本地镜像
docker image prune #删除没有使用的镜像
docker image rm #删除一个或多个镜像
docker images #列出本地镜像
docker import #从归档文件中创建镜像
docker info #显示 Docker 系统信息,包括镜像和容器数
docker inspect #获取容器/镜像的元数据
docker kill #杀掉一个运行中的容器
docker load #导入使用 docker save 命令导出的镜像
docker login #登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout #登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logs #获取容器的日志
docker manifest #管理manifest(实验,不应用于生产环境)
docker manifest annotate #向本地镜像清单添加附加信息
docker manifest create #创建用于注释和推入注册表的本地清单列表
docker manifest inspect #显示镜像清单或清单列表
docker manifest push #将清单列表推入仓库
docker manifest rm #从本地存储中删除一个或多个清单列表
docker network #管理网络
docker network connect #将容器连接到网络
docker network create #创建一个网络
docker network disconnect #断开容器的网络
docker network inspect #显示一个或多个网络的元数据
docker network ls #列出网络
docker network prune #删除所有没有使用的网络
docker network rm #删除一个或多个网络
docker node #管理集群(swarm)节点
docker node demote #从群集(swarm)管理器中降级一个或多个节点
docker node inspect #显示一个或多个节点的元数据
docker node ls #列出群集(swarm)中的节点
docker node promote #将一个或多个节点推入到群集管理器中
docker node ps #列出在一个或多个节点上运行的任务,默认为当前节点
docker node rm #从群集(swarm)删除一个或多个节点
docker node update #更新一个节点
docker pause #暂停容器中所有的进程
docker plugin #管理插件
docker plugin create #从rootfs和配置创建一个插件。插件数据目录必须包含config.json和rootfs目录。
docker plugin disable #禁用插件
docker plugin enable #启用插件
docker plugin inspect #显示一个或多个插件的元数据
docker plugin install #安装一个插件
docker plugin ls #列出所有插件
docker plugin push #将插件推送到注册表
docker plugin rm #删除一个或多个插件
docker plugin set #更改插件的设置
docker plugin upgrade #升级现有插件
docker port #列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口
docker ps #列出容器
docker pull #从镜像仓库中拉取或者更新指定镜像
docker push #将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker rename #重命名容器
docker restart #重启容器
docker rm #删除一个或多个容器
docker rmi #删除一个或多个镜像
docker run #创建一个新的容器并运行一个命令
docker save #将指定镜像保存成 tar 归档文件
docker search #从Docker Hub查找镜像
docker secret #管理Docker secrets
docker secret create #从文件或STDIN创建一个秘密作为内容
docker secret inspect #显示有关一个或多个秘密的详细信息
docker secret ls #列出秘密
docker secret rm #删除一个或多个秘密
docker service #管理服务
docker service create #创建一个服务
docker service inspect #查看服务的元数据
docker service logs #获取服务的日志
docker service ls #列出服务
docker service ps #列出一个或多个服务的任务
docker service rm #删除一个或多个服务
docker service rollback #将更改恢复到服务的配置
docker service scale #缩放一个或多个复制服务
docker service update #更新服务
docker stack #管理堆栈
docker stack deploy #部署新的堆栈或更新现有堆栈
docker stack ls #列出现有堆栈
docker stack ps #列出堆栈中的任务
docker stack rm #删除堆栈
docker stack services #列出堆栈中的服务
docker start #启动一个或多个已经被停止的容器
docker stats #显示容器的实时流资源使用统计信息
docker stop #停止一个运行中的容器
docker swarm #管理集群(Swarm)
docker swarm ca #查看或旋转当前群集CA证书。此命令必须针对管理器节点
docker swarm init #初始化一个群集(Swarm)
docker swarm join #加入群集作为节点和/或管理器
docker swarm join-token #管理加入令牌
docker swarm leave #离开群集(Swarm)
docker swarm unlock #解锁群集(Swarm)
docker swarm unlock-key #管理解锁钥匙
docker swarm update #更新群集(Swarm)
docker system #管理Docker
docker system df #显示docker磁盘使用情况
docker system events #从服务器获取实时事件
docker system info #显示系统范围的信息
docker system prune #删除未使用的数据
docker tag #标记本地镜像,将其归入某一仓库
docker top #查看容器中运行的进程信息,支持 ps 命令参数
docker trust #管理Docker镜像的信任
docker trust inspect #返回有关key和签名的低级信息
docker trust key #管理登入Docker镜像的keys
docker trust key generate #生成并加载签名密钥对
docker trust key load #加载私钥文件以进行签名
docker trust revoke #删除对镜像的认证
docker trust sign #镜像签名
docker trust signer #管理可以登录Docker镜像的实体
docker trust signer add #新增一个签名者
docker trust signer remove #删除一个签名者
docker unpause #恢复容器中所有的进程
docker update #更新一个或多个容器的配置
docker version #显示 Docker 版本信息
docker volume #管理volumes
docker volume create #创建一个卷
docker volume inspect #显示一个或多个卷的元数据
docker volume ls #列出卷
docker volume prune #删除所有未使用的卷
docker volume rm #删除一个或多个卷
docker wait #阻塞运行直到容器停止,然后打印出它的退出代码

浙公网安备 33010602011771号