当前位置: 首页 > news >正文

建设银行官方网站手机版/免费推广网站大全集合

建设银行官方网站手机版,免费推广网站大全集合,北京企业网站建站哪家好,怎么查看一个网站是谁做的介绍 默认情况下,在运行中的容器里创建的文件,被保存在一个可写的容器层: 如果容器被删除了,则数据也没有了这个可写的容器层是和特定的容器绑定的,也就是这些数据无法方便的和其它容器共享 Docker主要提供了两种方…

介绍

默认情况下,在运行中的容器里创建的文件,被保存在一个可写的容器层:

  • 如果容器被删除了,则数据也没有了
  • 这个可写的容器层是和特定的容器绑定的,也就是这些数据无法方便的和其它容器共享

Docker主要提供了两种方式做数据的持久化

  • Data Volume, 由Docker管理,(/var/lib/docker/volumes/ Linux), 持久化数据的最好方式
  • Bind Mount,由用户指定存储的数据具体mount在系统什么位置

在这里插入图片描述

Data Volume

本节部分操作需要Linux系统的环境,但是大部分都可以在Windows环境下的Docker进行操作,只有一个操作不行。

环境准备

准备一个Dockerfile 和 一个 my-cron的文件

Dockerfile

FROM alpine:latest
RUN apk update
RUN apk --no-cache add curl
ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.12/supercronic-linux-amd64 \SUPERCRONIC=supercronic-linux-amd64 \SUPERCRONIC_SHA1SUM=048b95b48b708983effb2e5c935a1ef8483d9e3e
RUN curl -fsSLO "$SUPERCRONIC_URL" \&& echo "${SUPERCRONIC_SHA1SUM}  ${SUPERCRONIC}" | sha1sum -c - \&& chmod +x "$SUPERCRONIC" \&& mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \&& ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic
COPY my-cron /app/my-cron
WORKDIR /appVOLUME ["/app"]# RUN cron job
CMD ["/usr/local/bin/supercronic", "/app/my-cron"]

my-cron
定时任务,没分钟存一次

*/1 * * * * date >> /app/test.txt

构建镜像

$ docker image build -t my-cron .
$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
my-cron      latest    e9fbd9a562c9   4 seconds ago   24.7MB

创建容器(不指定-v参数)

此时Docker会自动创建一个随机名字的volume,去存储我们在Dockerfile定义的volume VOLUME ["/app"]

$ docker run -d my-cron
9a8fa93f03c42427a498b21ac520660752122e20bcdbf939661646f71d277f8f
$ docker volume ls
DRIVER    VOLUME NAME
local     043a196c21202c484c69f2098b6b9ec22b9a9e4e4bb8d4f55a4c3dce13c15264
$ docker volume inspect 043a196c21202c484c69f2098b6b9ec22b9a9e4e4bb8d4f55a4c3dce13c15264
[{"CreatedAt": "2021-06-22T23:06:13+02:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/043a196c21202c484c69f2098b6b9ec22b9a9e4e4bb8d4f55a4c3dce13c15264/_data","Name": "043a196c21202c484c69f2098b6b9ec22b9a9e4e4bb8d4f55a4c3dce13c15264","Options": null,"Scope": "local"}
]

在这个Volume的mountpoint可以发现容器创建的文件

创建容器(指定-v参数)

在创建容器的时候通过 -v 参数我们可以手动的指定需要创建Volume的名字,以及对应于容器内的路径,这个路径是可以任意的,不必需要在Dockerfile里通过VOLUME定义

比如我们把上面的Dockerfile里的VOLUME删除

FROM alpine:latest
RUN apk update
RUN apk --no-cache add curl
ENV SUPERCRONIC_URL=https://github.com/aptible/supercronic/releases/download/v0.1.12/supercronic-linux-amd64 \SUPERCRONIC=supercronic-linux-amd64 \SUPERCRONIC_SHA1SUM=048b95b48b708983effb2e5c935a1ef8483d9e3e
RUN curl -fsSLO "$SUPERCRONIC_URL" \&& echo "${SUPERCRONIC_SHA1SUM}  ${SUPERCRONIC}" | sha1sum -c - \&& chmod +x "$SUPERCRONIC" \&& mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \&& ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic
COPY my-cron /app/my-cron
WORKDIR /app# RUN cron job
CMD ["/usr/local/bin/supercronic", "/app/my-cron"]

重新build镜像,然后创建容器,加-v参数

$ docker image build -t my-cron .
$ docker container run -d -v cron-data:/app my-cron
43c6d0357b0893861092a752c61ab01bdfa62ea766d01d2fcb8b3ecb6c88b3de
$ docker volume ls
DRIVER    VOLUME NAME
local     cron-data
$ docker volume inspect cron-data
[{"CreatedAt": "2021-06-22T23:25:02+02:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/cron-data/_data","Name": "cron-data","Options": null,"Scope": "local"}
]
$ ls /var/lib/docker/volumes/cron-data/_data
my-cron
$ ls /var/lib/docker/volumes/cron-data/_data
my-cron  test.txt

Volume也创建了。

环境清理

强制删除所有容器,系统清理和volume清理

$ docker rm -f $(docker container ps -aq)
$ docker system prune -f
$ docker volume prune -f

Data Volume 练习 MySQL

使用MySQL官方镜像,tag版本5.7

准备镜像

$ docker pull mysql:5.7
$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        5.7       2c9028880e58   5 weeks ago    447MB

创建容器

关于MySQL的镜像使用,可以参考 dockerhub https://hub.docker.com/_/mysql?tab=description&page=1&ordering=last_updated

关于Dockerfile Volume的定义,可以参考 https://github.com/docker-library/mysql/tree/master/5.7

$ docker container run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -v mysql-data:/var/lib/mysql mysql:5.7
02206eb369be08f660bf86b9d5be480e24bb6684c8a938627ebfbcfc0fd9e48e
$ docker volume ls
DRIVER    VOLUME NAME
local     mysql-data
$ docker volume inspect mysql-data
[{"CreatedAt": "2021-06-21T23:55:23+02:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/mysql-data/_data","Name": "mysql-data","Options": null,"Scope": "local"}
]

数据库写入数据

进入MySQL的shell,密码是 my-secret-pw

$ docker container exec -it 022 sh
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.34 MySQL Community Server (GPL)Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)mysql> create database demo;
Query OK, 1 row affected (0.00 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| demo               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)mysql> exit
Bye
# exit

创建了一个叫 demo的数据库

查看data volume

$ docker volume inspect mysql-data
[{"CreatedAt": "2021-06-22T00:01:34+02:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/mysql-data/_data","Name": "mysql-data","Options": null,"Scope": "local"}
]
# 这个指令 Linux环境的可以查看
$ ls  /var/lib/docker/volumes/mysql-data/_data
auto.cnf    client-cert.pem  ib_buffer_pool  ibdata1  performance_schema  server-cert.pem
ca-key.pem  client-key.pem   ib_logfile0     ibtmp1   private_key.pem     server-key.pem
ca.pem      demo             ib_logfile1     mysql    public_key.pem      sys
$

Windows Docker Desktop
在这里插入图片描述

未挂载Volumes时
在这里插入图片描述

其它数据库

如果熟悉的话,也可以试试MongoDB https://hub.docker.com/_/mongo

Bind Mount

把本机的文件夹挂载到容器里面。就是把本机的文件夹路径与容器的文件路径打通,容器的程序写入到本机的文件夹内。

练习示例

例如,目前没有C的环境,无法编译。

hello.c

#include <stdio.h>
int main()
{printf("hello docker\n");
}
PS F:\docker> docker container run -it -v ${pwd}:/root gcc:latest
root@ccad73dbd28f:/# cd root/
root@ccad73dbd28f:~# lsdockerfile   hello.c   
root@ccad73dbd28f:~# gcc -o hello hello.c
root@ccad73dbd28f:~# lsdockerfile   hello   hello.c   
root@ccad73dbd28f:~# ./hello
hello docker
root@ccad73dbd28f:~#

${pwd} 当前目录 就是 F:\docke 挂载到容器里

可以当机器不想搭建环境,或者无法兼容某些环境时候,就可以使用docker容器远程开发环境。我用Pycharm工具就有使用虚拟环境连接Docker。

http://www.lbrq.cn/news/1038979.html

相关文章:

  • 聊城做网站网络公司/小红书笔记关键词排名优化
  • 网站空间到期时间查询/微信朋友圈营销方案
  • 做商城网站哪个好/个人网站免费推广
  • 网站群发软文软件/如何发布自己的网站
  • 广州荔湾做网站/百度搜索引擎排行榜
  • 体育健身网站建设/百度怎么推广自己的作品
  • 网站500m空间够用吗/长沙网络推广小公司
  • 单页网站如何做/百度指数批量获取
  • 福州模板做网站/营销型网站建设哪家好
  • 黑色 网站/百度搜索高级搜索技巧
  • 伊犁网站制作/推广咨询服务公司
  • 成都网站建设 好多科技/首页排名关键词优化
  • 农家乐网站建设/企业营销策划合同
  • 郑州做网站费用/搜索引擎优化是什么意思啊
  • 通过网站做跳板/地推团队联系方式
  • 日本做爰漫画网站/百度双十一活动
  • 网站SEO基础代做/怎么制作网页广告
  • 大型购物网站/中国国际新闻
  • wordpress 搬家 sae/seo网站有优化培训吗
  • 网站建设和编程/哔哩哔哩b站在线看免费
  • 网站建设 微信 app/seo最新优化技术
  • 东莞微信网站建设报价/百度网页版入口
  • 南通高端网站设计开发/广东疫情最新消息
  • 做非法网站要多少钱/如何在网上做销售推广
  • 中国建设银行网站网上银行/优就业seo
  • 青岛 生物类网站建设/夸克搜索网页版
  • 建平台跟建网站/seo关键词如何设置
  • 上海手机网站制作公司/seo推广效果怎么样
  • 怎样做信息收费网站/网络营销的种类
  • 淘宝客网站应该怎么做/销售平台软件有哪些
  • 嵌入式学习的第四十八天-中断+OCP原则
  • 每日任务day0810:小小勇者成长记之武器精炼
  • java练习题:数字位数
  • 【李宏毅-2024】第六讲 大语言模型的训练过程1——预训练(Pre-training)
  • 从反射到方法句柄:深入探索Java动态编程的终极解决方案
  • [激光原理与应用-207]:光学器件 - 光纤种子源激光器常用元器件