网站建设标书模版怎么做情侣网站
news/
2025/9/23 8:38:31/
文章来源:
网站建设标书模版,怎么做情侣网站,南京网站建设王道下拉強,美工首页设计目录 1. 什么是Docker1.1. 什么是容器1.2. 什么是Docker 2. 安装Docker3. 镜像操作3.1. 拉取镜像3.2. 卸载镜像/容器3.3. 使用镜像/容器 4. 相关指令说明 1. 什么是Docker
1.1. 什么是容器 虚拟机#xff1a; 操作系统是一个很笨重的程序#xff0c;即是啥都不干#xff0c… 目录 1. 什么是Docker1.1. 什么是容器1.2. 什么是Docker 2. 安装Docker3. 镜像操作3.1. 拉取镜像3.2. 卸载镜像/容器3.3. 使用镜像/容器 4. 相关指令说明 1. 什么是Docker
1.1. 什么是容器 虚拟机 操作系统是一个很笨重的程序即是啥都不干虚拟本身都要占用很多内存和磁盘并且启动很慢操作系统要从头到尾把该检测的都检测了该加载的都加载上。 容器 类似于码头的集装箱——相互隔离、长期反复使用、快速装载和卸载、规格标准在港口和船上都可以摆放。 虚拟机Docker的隔离
隔离 虚拟机现代软件开发的一大目的就是隔离通过将应用程序部署在不同的虚拟机中从而实现隔离容器只隔离应用程序的运行时环境程序运行依赖的各种库以及配置但容器之间可以共享同一个操作系统 容器的优势轻量级且占用的资源更少与操作系统动辄几G的内存占用相比容器技术只需数M空间因此我们可以在同样规格的硬件上大量部署容器而且不同于操作系统数分钟的启动时间容器几乎瞬时启动
1.2. 什么是Docker Docker Go语言开源项目docker将程序以及程序所有的依赖都打包到docker container。Docker可以把程序所需要的环境装在容器里面以做到一次容器配置程序处处可运行。
组成理解 dockerfile——源代码image——可执行的程序container——进程
关键指令
docker build docker编译docker fileclient在接收到请求后转发给docker daemon接着docker daemon根据docker file创建出“可执行程序”image docker run docker daemon守护进程负责管理容器和镜像的生命周期以及提供其他相关的管理和维护功能将image加载到内存执行跑起来的image就是container docker pull docker daemon接收到命令后向docker registry镜像库发送image下载请求 Docker的关键组件
容器技术Docker使用容器技术来隔离应用程序及其依赖项。每个容器都包含了一个应用程序及其所有的依赖项并且彼此相互隔离。这使得应用程序的部署、管理和扩展变得更加简单和高效。镜像Docker使用镜像来定义容器的运行环境。镜像是一个轻量级的、可执行的独立软件包包含了运行应用程序所需的所有文件和配置。Docker通过读取镜像来创建和运行容器。Docker守护进程Docker守护进程是Docker引擎的核心组件负责管理容器和镜像的生命周期。它接收来自Docker客户端的命令和请求并在后台运行容器和执行相关的操作。Docker注册中心Docker注册中心用于存储和共享镜像。它提供了一个中央化的存储和分发机制使得镜像可以轻松地在不同的机器和环境之间传输和共享。Docker CLI命令行接口Docker CLI是Docker的命令行工具用于与Docker守护进程进行交互。通过Docker CLI用户可以创建、运行、停止、删除容器和镜像等操作。Docker网络Docker网络负责管理容器之间的网络通信以及容器与外部网络的连接。它提供了一种灵活的网络模型使得容器可以轻松地相互通信并暴露给外部世界。Docker存储驱动Docker使用存储驱动来管理容器的文件系统和卷。不同的存储驱动可以根据需求选择以满足不同的性能和可靠性要求。
2. 安装Docker
本文全的案例与指令全是基于Centos7.6 注意Docker默认安装目录/var/lib/docker 查看docker稳定版本并选择安装 # 在存储库中列出可用版本
yum list docker-ce --showduplicates | sort -r
# 安装
yum install docker-ce-VERSION_STRING docker-ce-cli-VERSION_STRING containerd.ioCentOS7 系统 CentOS-Extras 库中已带 Docker可以直接安装 yum update
# 安装必要依赖
# yum-util 提供yum-config-manager功能另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置yum源2选1# 阿里yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 中央yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
# 可以查看所有仓库中所有docker版本并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
yum install docker-ce-18.03.1.ce安装之后启动 Docker 服务并配置开机自启动 # 启动Docker服务也可以使用 systemctl start docker 启动服务
service docker start
# 设置开机自启动
chkconfig docker on
# 查看Docker是否开机自启动
systemctl is-enabled docker卸载Docker可参考这篇博客https://blog.csdn.net/zqd_java/article/details/122249755
3. 镜像操作
此部分以拉取Postgresql:14.2的镜像为例
3.1. 拉取镜像 如果拉取镜像报错报错missing signature key 处理 查看docker版本docker version docker版本太老需要重装 安装最新的Dockeryum install docker-ce -y 拉取pg镜像 docker search postgres 查看远程仓库有哪些版本的postgres docker pull postgres:14.2 拉取Postgresql docker images 展示本地镜像 仓库 镜像标记 ID唯一 创建时间 大小
3.2. 卸载镜像/容器
docker rmi imagesId 通过镜像ID卸载镜像 如果一个镜像正在被一个容器所使用那就删除这个容器再卸载镜像或者 docker rmi -f ImageId 强制卸载 如何删除一个容器
查看容器列表查看所有容器如果不加 --all只查正在跑的容器docker container list --all也可以用docker ps停止容器docker stop ContainerId删除容器docker rm ContainerId
3.3. 使用镜像/容器 注意 默认情况下Docker容器中的PostgreSQL数据目录通常位于容器内部的/var/lib/postgresql/data路径下刚拉下来Postgresql镜像并不会立即创建一个数据目录而是需要运行起来容器之后才会创建最好初始化一个docker卷来持久化Postgresql的数据并将其挂载到PostgreSQL容器的/var/lib/postgresql/data目录 配置postgreSQL14.2镜像 创建一个docker卷持久化Postgresql的数据 docker卷volume一个持久的存储区域可以用来保存数据即使容器被删除或重新创建数据仍然可以保留注卷名必须唯一 docker volume create psql-data创建并运行容器 # docker run -d --name 容器名 -v docker卷:psql数据目录 -e POSTGRES_USER用户名 -e POSTGRES_PASSWORD密码 -p 端口 repository:tag
docker run --privilegedtrue -d --name mypg -v psql-data:/var/lib/postgresql/data -e POSTGRES_USERpostgres -e POSTGRES_PASSWORDadmin -p 5432:5432 postgres:14.2验证持久目录 注意 直接ls /var/lib/postgresql/data可能会报错——ls: cannot access [rootVM-8-9-centos lib]# ls /var/lib/postgresql/data
ls: cannot access /var/lib/postgresql/data: No such file or directory当使用-v选项将宿主机上的目录挂载到容器内时Docker会在宿主机上创建一个卷并使用容器内的路径来映射它。如我将psql-data卷挂载到了容器的/var/lib/postgresql/data目录。 但是/var/lib/postgresql/data这个路径是PostgreSQL容器的内部路径而不是宿主机上的实际路径。当我尝试在宿主机上使用ls命令列出这个路径时它会提示“No such file or directory”因为该路径在宿主机上并不存在。 应该使用Docker提供的命令和工具而不是直接在宿主机上访问该路径。应该用docker exec container_name_or_id command在容器内部执行指令。 [rootVM-8-9-centos lib]# docker exec -it mypg ls /var/lib/postgresql/data
base pg_ident.conf pg_serial pg_tblspc postgresql.auto.conf
global pg_logical pg_snapshots pg_twophase postgresql.conf
pg_commit_ts pg_multixact pg_stat PG_VERSION postmaster.opts
pg_dynshmem pg_notify pg_stat_tmp pg_wal postmaster.pid
pg_hba.conf pg_replslot pg_subtrans pg_xact连接数据库 报错原因和上面是一样的 [rootVM-8-9-centos ~]# psql -U postgres -h localhost -p 5432 -d postgres
-bash: psql: command not found换个指令docker exec -it mypg psql -U postgres -h localhost -p 5432 -d postgres [rootVM-8-9-centos ~]# docker exec -it mypg psql -U postgres -h localhost -p 5432 -d postgres
psql (14.2 (Debian 14.2-1.pgdg1101))
Type help for help.postgres#开启密码校验可以看到无须密码就登录进去了现在就需要去修改一下配置文件了 就是要找到pg_hba.conf文件的目录然后修改 [rootVM-8-9-centos ~]# find / -name pg_hba.conf
/var/lib/docker/volumes/psql-data/_data/pg_hba.conf
[rootVM-8-9-centos ~]# vim /var/lib/docker/volumes/psql-data/_data/pg_hba.conf改前 改后 重启容器就OK了
4. 相关指令说明
为了方便阅读这里对文中的相关指令做一些说明。
Docker常用指令都是docker开头的指令。
指令说明案例docker pull拉取镜像docker pull postgres:14.2docker version查看docker版本docker search查看远程仓库的镜像版本docker search postgresdocker images展示本地镜像docker rmi卸载镜像docker rmi imagesIddocker rmi -f imagesIddocker container listdocker container list --all展示在运行的容器展示本地所有容器docker ps展示正在跑的容器docker stop停止容器运行docker stop ContainerIddocker rm卸载容器docker rm ContainerIddocker rm -f ContainerIddocker volumedocker卷操作docker volume create psql-data创建一个叫psql-data的卷docker run创建并运行容器docker run --privilegedtrue -d --name mypg -v psql-data:/var/lib/postgresql/data -e POSTGRES_USERpostgres -e POSTGRES_PASSWORDadmin -p 5432:5432 postgres:14.2docker exec在容器内部执行指令docker exec -it mypg ls /var/lib/postgresql/datadocker satrt运行容器docker satrt namedocker restart重启容器docker restart name
一些Centos7操作
操作指令修改环境变量vi /etc/profileexport 变量名$PATH:文件目录source /etc/profile查看环境变量echo $变量名或env删除环境变量unset 变量名或unset *.*
对比which、whereis、find、locate which——用于查找可直接执行的命令且只在$PATH路径环境变量中搜索只返回第一个匹配的文件路径但可以通过-a选项返回所有匹配结果 [rootVM-8-9-centos bin]# which docker
/usr/bin/dockerwhereis——在$PATH路径基础上增加了一些系统目录的查找查找范围比which稍大查找速度快。可以通过选项-b限定只搜索二进制文件 [rootVM-8-9-centos bin]# whereis docker
docker: /usr/bin/docker /etc/docker /usr/share/man/man1/docker.1.gzfind——直接搜索整个文件目录的任意文件默认从根目录开始搜索匹配名字 [rootVM-8-9-centos bin]# find / -name docker
/sys/fs/cgroup/devices/docker
/sys/fs/cgroup/cpuset/docker
/sys/fs/cgroup/hugetlb/docker
/sys/fs/cgroup/net_cls,net_prio/docker
/sys/fs/cgroup/pids/docker
/sys/fs/cgroup/freezer/docker
/sys/fs/cgroup/cpu,cpuacct/docker
/sys/fs/cgroup/blkio/docker
/sys/fs/cgroup/memory/docker
/sys/fs/cgroup/perf_event/docker
/sys/fs/cgroup/systemd/docker
/etc/docker
/usr/share/bash-completion/completions/docker
/usr/bin/docker
/var/lib/docker
/var/lib/docker/overlay2/07892f16155c27680887056014518b9bda0c79aa0da2a3973dcc6d68c337a9a8/diff/etc/dpkg/dpkg.cfg.d/docker
/var/lib/docker/overlay2/b6417229db3f6b31cfc75c95453e44541e6c172e961631dd92de966a100bbe3f/diff/etc/dpkg/dpkg.cfg.d/docker
/run/dockerlocate——超快速查找任意文件。它会从Linux内置的索引数据库查找文件的路径索引速度超快。刚刚新建的文件可能需要一定时间才能加入该索引数据库可以通过执行updatedb命令来强制更新一次索引这样确保不会遗漏文件。该命令通常会返回大量匹配项可以使用-r选项通过正则表达式来精确匹配
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911927.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!