自己做报名网站教程品牌网站如何做
news/
2025/9/30 6:43:00/
文章来源:
自己做报名网站教程,品牌网站如何做,网站建设论文总结,在网站做商城平台需要哪些资质1#xff0c;docker简介
docker主要解决了最初软件开发环境配置的困难#xff0c;完善了虚拟机部署的资源占用多#xff0c;启动慢等缺点#xff0c;保证了一致的运行环境#xff0c;可以更轻松的维护和扩展。docker在linux容器的基础上进行了进一步的封装#xff0c;提…1docker简介
docker主要解决了最初软件开发环境配置的困难完善了虚拟机部署的资源占用多启动慢等缺点保证了一致的运行环境可以更轻松的维护和扩展。docker在linux容器的基础上进行了进一步的封装提供更简单易用的接口。
把自己的应用放入容器应用在docker的虚拟容器里运行就像在真实的物理机上运行一样容器还可以进行版本管理、复制、分享、修改等像管理普通的代码一样简单。 2docker三大核心与生命周期
镜像Image docker镜像一个特殊的文件系统。主要作用是提供容器运行时需要的程序、库、资源、配置参数等。 docker镜像的最大特征是分层存储即它并不是由一个文件组成而是由多层文件联合组成 镜像分为基础镜像各大厂商提供的例如ubuntu、node镜像等和个人镜像由个人开发者构建上传。 容器Container 容器是基于镜像创建的镜像和容器类似于js中的类和对象镜像是静态定义容器是镜像运行时的实体。 容器既然是基于镜像创建的那么容器也是分层存储的。每一个容器都是以一个镜像为基础层在其上创建一个当前容器的存储层即容器存储层。 容器存储层的生存周期和容器一样容器消亡时容器存储层也随之消亡。因此任何保存于容器存储层的信息都会随容器删除而丢失因此容器不应该向其存储层内写入任何数据 容器可以被创建、启动、停止、删除、暂停等。 仓库Repository docker仓库是集中存放镜像的地址。类似于npm包和npm仓库的关系。可以将本地的容器发布到一个镜像仓库中给其他服务器使用。 每个镜像仓库可以包含多个不同版本的标签Tag每个标签对应一个镜像。 我们从镜像仓库中获取镜像是通过仓库名:标签 来指定版本的镜像egubuntu18.04 3使用镜像
3.1 常用命令
镜像搜索 - docker search 名称 描述从dockerHub搜索镜像 在docker Hub上有大量的镜像可以使用类似于npm仓库
拉取镜像 - docker pull [选项] [registry地址[:端口号]/]仓库名[:标签]默地址为docker.io 描述从dockerHub上拉取镜像使用 示例docker pull ubuntu:18.04 docker pull docker.io/library/node:18-alpine
列出镜像 - docker image ls [ 名称筛选 ]可以在ls后面加上名称进行筛选 描述列出本机所有镜像
删除本地镜像 - docker image [选项] rm 镜像ID/长ID/名称/描述 [镜像2......] 描述可以通过镜像的ID、长ID、名称等进行定位并删除镜像也可以批量删除镜像 3.2 构建镜像
理解我们除了可以使用官方镜像还构建自己的镜像通常都是在其他的镜像基础上进行构建例如node、nginx等。
可以到官网理解镜像的构成原理然后发现构建镜像其实是通过一条条指令构建出来的。因此构建镜像可以新建一个Dockerfile文件来编写指令完成。 构建流程
1创建Dockerfile文件
mkdir mynginx #创建一个目录
cd mynginx/ #进入新建的目录跟文件夹
touch Dockerfile #创建文件 2Dockerfile文件内容
FROM nginx
RUN echo h1Hello, This is My Nginx/h1 /usr/share/nginx/html/index.html 指令说明 FROM基于哪个基础镜像进行定制 RUN执行命令行的命令注意每一个RUN都会新建一层然后执行命令因此一个Dockerfile文件尽量使用一次RUN指令 3构建镜像
docker build [选项] 上下文路径/URL/-
docker build -t mynginx:v3 . 描述最后的点. 即为上下文路径。 注意这个上下文路径并不是Dockerfile所在的路径而是Dockerfile中指令工作的目录。例如Dockerfile文件中经常能见到拷贝代码到镜像中“COPY ./package.json /app/”这种命令他复制的是上下文路径下的package.json文件 3.3 Dockfile常用指令
COPY [--chownuser:group] 源路径... 目标路径 - 复制目录ADD [--chownuser:group] 源路径... 目标路径 - 更高级的复制目录源路径是可以是URL和压缩包 源路径是URLADD会自动下载文件到目标目录如果源路径是压缩文件则复制并解压缩 CMD 命令 或者 CMD [可执行文件, 参数1, 参数2...] - 容器启动ENTRYPOINT这个指令用法与CMD一样。 区别是当一个文件指定了ENTRYPOINT则CMD的含义就会发生变化不再是直接的运行其命令而是将 CMD 的内容作为参数传给 ENTRYPOINT 指令 应用场景例如在启动前需要启动一些其他文件 ENV key value 或 ENV key1value1 key2value2... - 设置环境变量VOLUME [路径1, 路径2...] - 定义匿名卷EXPOSE 端口1 [端口2...] - 声明容器运行时提供的端口WORKDIR 工作目录路径 - 改变后面命令的工作目录目录没有则创建USER 用户名[:用户组] - 改变后面命令的用户影响后面RUN命令必须是已有的用户ONBUILD其他指令 - 特殊指令放到其他指令之前。后面跟的指令在当前镜像构建时并不会被执行。只有当以当前镜像为基础镜像去构建下一级镜像的时候才会被执行。LABEL keyvalue keyvalue... ... - 给镜像以键值对的形式添加一些元数据SHELL [executable, parameters] - 指定RUN、ENTRYPOINT、CMD指令的shellLinux 中默认为 [/bin/sh, -c] 示例
#基础镜像
FROM alpine:3.4#复制目录
COPY --chown55:mygroup files* /mydir/#复制压缩包并解压
ADD ubuntu-xenial-core-cloudimg-amd64-root.tar.gz /mydir/#运行指定的文件命令
ENTRYPOINT [docker-entrypoint.sh]#定义匿名卷到/data目录
VOLUME /data#声明端口6379
EXPOSE 6379#切换用户root
USER root#切换工作目录/app
WORKDIR /app#设置环境变量
ENV NODE_VERSION 7.2.0
ENV VERSION1.0 DEBUGon#下一级镜像构建时复制package.json到app目录同事执行npm install
ONBUILD COPY ./package.json /app
ONBUILD RUN [ npm, install ]#添加元数据
LABEL APP_CON app-config#指定shell命令并运行shell一行指令
SHELL [/bin/sh, -c]
RUN lll; ls#启动命令
CMD [ npm, start ]
CMD [ redis-server ] 4操作容器
4.1 查看容器
查看正在运行的容器 - docker ps查看所有容器 - docker ps -a 4.2 启动容器
4.2.1 新建一个容器并启动
docker run [选项] 镜像名称 [命令] [参数...]
选项列表 -d容器守护态运行即容器在后台运行-t为容器分配一个伪输入终端通常与-i同时使用退出终端使用exit命令或者ctrld-i以交互模式运行容器就是允许用户交互通常与-t同时使用--name为容器指定一个名称默认是随机名称-P随机端口映射-p指定端口映射-e设置环境变量--rm退出容器后删除该容器... ... 命令常用 /bin/bash启动容器后立即执行的命令 示例
#启动ubuntu容器并立即关闭
docker run ubuntu:18.04 /bin/bash#启动ubuntu容器并输出Hello world然后终止容器
docker run ubuntu:18.04 /bin/echo Hello world#启动ubuntu容器并允许用户进行交互
docker run -it ubuntu:18.04#启动ubuntu容器并且在后台一直运行
docker run -d ubuntu 4.2.2 启动停止状态的容器
docker [ container ] start 容器ID/名称 4.3.3 重启容器
docker [ container ] restart 容器ID/名称 4.3 终止容器
docker [ container ] stop 容器ID/名称
对于不会终止的容器需要使用docker [ container ] kill 容器ID/名称 Tips终止容器后的确定操作
1运行docker ps确定该容器不在查询结果列表中
2运行docker ps a确定该容器可以查询到并且STATUS值为Exited 示例
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
af3e13b5d2r3 ubuntu:18.04 /bin/bash 1 hours ago Exited (0) 2 minutes ago4.4 进入容器
说明由于在使用 -d 参数时容器启动后会进入后台因此某些时候需要进入容器进行操作。 方式
1docker exec [选项] 容器ID/名称 [命令] - 建议使用。因为从这个容器退出容器不会停止
2docker attach - 不建议使用。因为从这个容器中退出会导致容器停止 说明
如果选项参数只用了 -i 则因为没有分配伪终端界面没有我们熟悉的Linux命令提示符但是执行命令仍然可以看到运行结果。如果用了-i和-t才能看到我们常见的Linux命令提示符通常搭配-i和-t一起使用 示例
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
af3e13b5d2r3 ubuntu:18.04 /bin/bash 18 hours ago Up 17 seconds#进入容器只使用参数-i
$ docker exec -i af3e13b5d2r3 bash
ls
bin
boot
dev
etc
home
lib
pwd
/#进入容器同时使用参数-i和-t
$ docker exec -it af3e13b5d2r3 bash
rootaf3e13b5d2r3:/# exit4.5 查看容器日志
docker logs [选项] 容器ID/名称
选项列表 -f : 实时跟踪日志输出-t : 给日志加上时间戳显示--tail :仅列出最新N条容器日志--since :显示某个开始时间的所有日志 示例
# 查看后台运行的日志
docker logs af3e13b5d2r# 实时监控(类似tail -f)
docker logs -f af3e13b5d2r# 获取最后10行
docker logs --tail 10 af3e13b5d2r# 实时查看最近的日志
docker logs --tail 0 -f af3e13b5d2r# 加上时间戳
docker logs -t af3e13b5d2r 4.6 删除容器
删除一个终止状态的容器docker [ container ] rm 容器ID/名称
删除一个运行状态的容器加一个-f参数docker [ container ] rm -f 容器ID/名称 4.7 容器的数据管理
因容器中是随用随删并不会保存数据记录。因此对于容器中使用mysql这种需要数据持久化的则需要容器的数据管理。有数据卷、挂载主机目录两种方式。 数据卷是一个可以提供一个或者多个容器使用的特殊目录他提供了很多有用的特性。
创建数据卷docker volumn create
列出所有数据卷docker volumn ls 挂载主机目录挂载到本地的一个绝对路径下需要注意的是挂载的目录下有程序运行需要的文件例如nginx容器在本地目录/home/nginx下要有index.html文件。
示例$ docker run -d -P --name web --mount source/home/nginx,target/usr/share/nginx/html nginx 5访问仓库
访问docker官方维护的公共仓库可以先在https://hub.docker.com免费注册一个 Docker 账号然后通过docker login登录命令docker logout退出命令并通过docker search来查找镜像。 6更多
更详细的API与教程可参考
前言 - Docker — 从入门到实践https://yeasy.gitbook.io/docker_practice/
通过docker完整的部署一个vue工程可参考
[手把手系列之]Docker 部署 vue 项目 - 掘金Docker 作为轻量级虚拟化技术拥有持续集成、版本控制、可移植性、隔离性和安全性等优势。本文使用Docker来部署一个vue的前端应用并尽可能详尽的介绍了实现思路和具体步骤以方便有类似需要的同学参考。 /api/json 接口 404当然此时这个接口还不存在暂时写到…https://juejin.cn/post/6844903837774397447
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922538.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!