8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何更改docker镜像安装目录?

Yiping Hao 2月前

224 0

据我所知,docker 镜像在被拉取时会安装到 /var/lib/docker。有没有办法更改此位置,例如更改到 /mnt 之类的已安装卷?

据我所知,docker 镜像 /var/lib/docker 在被拉取时安装到。有没有办法更改此位置,例如更改到已安装的卷 /mnt

帖子版权声明 1、本帖标题:如何更改docker镜像安装目录?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Yiping Hao在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • Tend 2月前 0 只看Ta
    引用 2

    使用最新版本的 Docker,您可以将参数的值设置 data-root 为自定义路径 /etc/docker/daemon.json (根据 https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file )。

    在启动 Docker 守护进程时 -g 使用选项更改 Docker 的存储基目录(容器和图像所在的位置) docker --help 以便在 Docker 启动时自动应用此设置, /etc/default/docker

  • 谢谢你的回答。你能告诉我如何在 docker upstart 文件中添加这个要求吗?我是否应该将 -g 标志添加到 DOCKER_OPTS 变量中?

  • 是的,将此行更改为 DOCKER_OPTS=\'-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt\'

  • NodaTime 库使处理日期和时间变得更加容易,但是我不知道如何计算两个日期之间的分钟数,同时考虑营业时间和时间 z...

    NodaTime 使处理日期和时间变得更加容易,但是我不知道如何使用 NodaTime 计算两个日期之间的分钟数,同时考虑营业时间和时区。这里有一个例子(请注意,我的开始和结束日期始终存储为 UTC,但营业时间可以是任何时区):

    Start: 2024-02-23T01:00:00Z
    End: 2024-02-29T09:45:00Z
    Business Hours: M-F 07:30:00 - 17:30:00 Eastern Standard Time (so either UTC−05:00 or UTC−04:00 depending on time of year)
    

    我认为答案应该是 2835 分钟,谢谢

  • R2D2 2月前 0 只看Ta
    引用 6

    我正在尝试从雅虎财经 (Yahoo Finance) 的世界指数表中抓取该指数的股票代码和全名:https://finance.yahoo.com/world-indices/这是我目前拥有的代码:来自 bs4 ...

    我正在尝试从雅虎财经 (Yahoo Finance) 的世界指数表中抓取该指数的股票代码和全名: https://finance.yahoo.com/world-indices/

    这是我目前拥有的代码:

    from bs4 import BeautifulSoup
    import pandas as pd
    
    # URL of the Yahoo Finance world indices page
    url = 'https://finance.yahoo.com/world-indices/'
    
    # Send HTTP request to the URL
    response = requests.get(url)
    response.raise_for_status()  # Raise an exception for HTTP errors
    
    # Parse the HTML content of the page using BeautifulSoup
    soup = BeautifulSoup(response.content, 'html.parser')
    
    # Find the table containing the indices data
    table = soup.find('table', {'class': 'W(100%)'})
    
    # Initialize lists to store ticker symbols and names
    tickers = []
    names = []
    
    # Extract data from the table rows
    for row in table.find_all('tr')[1:]:  # Skip the header row
        cells = row.find_all('td')
        ticker = cells[0].text.strip()
        name = cells[1].text.strip()
        tickers.append(ticker)
        names.append(name)
    
    # Create a dataframe using pandas
    data = {'Ticker': tickers, 'Name': names}
    df = pd.DataFrame(data)
    
    # Save the dataframe to a CSV file
    df.to_csv('yahoo_finance_world_indices.csv', index=False)
    
    print('Data saved to yahoo_finance_world_indices.csv')
    

    以及生成的 csv 文件:

    ^GSPC,S&P 500
    ^DJI,Dow 30
    ^IXIC,Nasdaq
    ^NYA,
    ^XAX,
    ^BUK100P,
    ^RUT,Russell 2000
    ^VIX,
    ^FTSE,FTSE 100
    ^GDAXI,
    ^FCHI,
    ^STOXX50E,
    ^N100,
    ^BFX,
    IMOEX.ME,
    ^N225,Nikkei 225
    ^HSI,
    000001.SS,
    399001.SZ,
    ^STI,
    ^AXJO,
    ^AORD,
    ^BSESN,
    ^JKSE,
    ^KLSE,
    ^NZ50,
    ^KS11,
    ^TWII,
    ^GSPTSE,
    ^BVSP,
    ^MXX,
    ^IPSA,
    ^MERV,
    ^TA125.TA,
    ^CASE30,
    ^JN0U.JO,
    

    我想知道为什么有些名称没有输出到我的 CSV 文件中——我注意到输出的名称也是实际表格上显示的全名的缩写/简短版本。

    enter image description here

    我是网络抓取方面的新手,所以我不完全确定这里出了什么问题。

  • 如果 docker 忽略了您的 /etc/default/docker 文件,您可能需要针对 Debian 或 Ubuntu 某些版本中的错误实施此解决方案。

  • 我尝试了几种不同的方法,但最终编辑 /etc/docker/daemon.json 配置对我有用。这里有很好的说明:evodify.com/change-docker-storage-location

  • 除此之外,我会避免使用时区缩写 - 你实际上是想说“东部时间”而不是 EST 吗?或者你

  • 以下是如何从网站获取股票代码+名称的示例:

    import requests
    from bs4 import BeautifulSoup
    
    url = "https://finance.yahoo.com/world-indices/"
    
    headers = {
        "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:124.0) Gecko/20100101 Firefox/124.0"
    }
    
    soup = BeautifulSoup(requests.get(url, headers=headers).content, "html.parser")
    
    for a in soup.select('a[data-test="quoteLink"]'):
        print(f"{a.text:<30} {a['title']}")
    

    印刷:

    ^GSPC                          S&P 500
    ^DJI                           Dow Jones Industrial Average
    ^IXIC                          NASDAQ Composite
    ^NYA                           NYSE COMPOSITE (DJ)
    ^XAX                           NYSE AMEX COMPOSITE INDEX
    ^BUK100P                       Cboe UK 100
    ^RUT                           Russell 2000
    ^VIX                           CBOE Volatility Index
    ^FTSE                          FTSE 100
    ^GDAXI                         DAX PERFORMANCE-INDEX
    ^FCHI                          CAC 40
    ^STOXX50E                      ESTX 50 PR.EUR
    ^N100                          Euronext 100 Index
    ^BFX                           BEL 20
    IMOEX.ME                       MOEX Russia Index
    ^N225                          Nikkei 225
    ^HSI                           HANG SENG INDEX
    000001.SS                      SSE Composite Index
    399001.SZ                      Shenzhen Index
    ^STI                           STI Index
    ^AXJO                          S&P/ASX 200
    ^AORD                          ALL ORDINARIES
    ^BSESN                         S&P BSE SENSEX
    ^JKSE                          IDX COMPOSITE
    ^KLSE                          FTSE Bursa Malaysia KLCI
    ^NZ50                          S&P/NZX 50 INDEX GROSS ( GROSS 
    ^KS11                          KOSPI Composite Index
    ^TWII                          TSEC weighted index
    ^GSPTSE                        S&P/TSX Composite index
    ^BVSP                          IBOVESPA
    ^MXX                           IPC MEXICO
    ^IPSA                          S&P/CLX IPSA
    ^MERV                          MERVAL
    ^TA125.TA                      TA-125
    ^CASE30                        EGX 30 Price Return Index
    ^JN0U.JO                       Top 40 USD Net TRI Index
    
  • 我有以下数据:times <- c(\'20:00\',\'17:00\')df <- data.frame(times)df$times <- as.POSIXct(df$times, format = '%H:%M')现在,我想创建一个额外的...

    我有以下数据:

    times <- c("20:00","17:00")
    df <- data.frame(times)
    df$times <- as.POSIXct(df$times, format = '%H:%M')
    

    现在,我想创建一个额外的规则来检测时间是否早于下午 5 点。因此我尝试了:

    df$off_hours <- ifelse(df$times < "17:00", 1, 0)
    

    但这给了我:

    \'as.POSIXlt.character(x, tz, ...) 中的错误:字符串不是标准的明确格式\'

    关于如何才能改善这一点,您有什么想法吗?

  • 引用 12

    我正在尝试使用 Java 显示格式化的伊斯兰月份名称,目前我有以下代码:HijrahDate date = HijrahDate.from(LocalDate.of(2024, 4, 11));System.out.println(DateTimeFormatter.

    我正在尝试使用 Java 显示格式化的伊斯兰月份名称,目前我有以下代码:

    HijrahDate date = HijrahDate.from(LocalDate.of(2024, 4, 11));
    System.out.println(DateTimeFormatter.ofPattern("MMMM", Locale.US).format(date));
    

    当我在装有 Java 11(Temurin jdk-11.0.8.10-hotspot)的 Windows 计算机上运行此代码时,我得到以下结果(我认为这是正确的结果):

    肖瓦尔

    请参阅 在 Ideone.com 上 使用 Java 12 运行的代码,得到相同的结果。

    然而,当我在 Android 设备上运行相同的代码时,我得到以下输出(只是一个月份数字):

    10
    

    我在各种设备上进行了测试,例如搭载 Android 14 的三星 Galaxy 智能手机、搭载 Android 13 的模拟器和搭载 Android 12 的 Rockchip RK3588 盒子,但它们都给出了相同的结果,所以我认为这不仅仅是一个设备或一个制造商的问题。

    有没有可靠的方法可以在 Android 上获取伊斯兰/希吉拉历法月份名称?

  • 引用 13

    @JonSkeet 谢谢你的回复!我更正了上面的 EST 问题。至于春季前进/后退,如果可能的话,我会选择忽略它们。客户更感兴趣的是两个日期之间经过的总分钟数。谢谢。大多数语言对日期/时间的实现很差是有原因的,这很复杂!

  • 您需要将 \'17:00\' 转换为时间,然后才能进行比较:

    cutoff_time <- as.POSIXct("17:00", format = '%H:%M')
    
    df$off_hours <- +(df$times < cutoff_time)
    

    以下是完整的示例 https://www.mycompiler.io/view/7YpyU3n13Ut

  • \'东部标准时间\' 不依赖于一年中的时间 - \'东部标准时间\' 是

  • 引用 16

    根据评论的建议,我利用 Docker systemd 文档 来改进这个答案。下面的过程不需要重新启动并且更加干净。

    首先创建自定义配置的目录和文件:

    sudo mkdir -p /etc/systemd/system/docker.service.d
    sudo $EDITOR /etc/systemd/system/docker.service.d/docker-storage.conf
    

    17.06-ce 之前的 docker 版本 粘贴:

    [Service]
    ExecStart=
    ExecStart=/usr/bin/docker daemon -H fd:// --graph="/mnt"
    

    17.06-ce之后的 docker 粘贴:

    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd -H fd:// --data-root="/mnt"
    

    替代方法 daemon.json

    我最近在 Fedora 25 上尝试了上述步骤但似乎不起作用。除了 /etc/docker/daemon.json 进行简单的修改外,还有以下方法:

    {
        "graph": "/mnt",
        "storage-driver": "overlay"
    }
    

    尽管使用了这种方法,您仍然必须重新加载配置并重新启动 Docker:

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    要确认 Docker 已重新配置:

    docker info|grep "loop file"
    

    在最近的版本(17.03)中需要不同的命令:

    docker info|grep "Docker Root Dir"
    

    输出应如下所示:

     Data loop file: /mnt/devicemapper/devicemapper/data
     Metadata loop file: /mnt/devicemapper/devicemapper/metadata
    

    或者:

     Docker Root Dir: /mnt
    

    然后你就可以安全地删除旧的 Docker 存储:

    rm -rf /var/lib/docker
    
  • df$off_hours <- +(df$times < cutoff_time) 快一个数量级,不需要 ifelse。

  • 我不知道 Android 已升级到 Java 11 级别的功能。我将删除我的第一条评论。但我确实怀疑您的问题与本地化有关。

  • Mel 2月前 0 只看Ta
    引用 19

    此链接 docs.docker.com/engine/admin/systemd 解释了如何使用 systemd 配置 Docker,它适用于较新的 Linux 发行版,例如 Ubuntu 16.04。

  • 另外:这里的“Account for”是什么意思?从开始到结束期间的所有营业时间?

返回
作者最近主题: