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

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

Yiping Hao 2月前

236 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)
  • 我有一个数据表,大约每 15 秒更新一次数据(df1),另一个数据表大约每 5 分钟更新一次数据(df2),如下所示。我希望将 df2 的 \'time\' 变量与关闭的变量匹配...

    我有一个数据大约每 15 秒 (df1) 和另一个数据大约每 5 分钟 (df2) 的 df,如下所示。我希望将 df2 的 \'time\' 变量与 df1 的最近时间戳匹配,然后将该最近时间戳作为 5 分钟平均 df1 数据的中心。

    df1:

                      time  speed
    0  2022-10-04 00:00:24  4.590
    1  2022-10-04 00:00:41  4.389
    2  2022-10-04 00:00:57  4.367
    3  2022-10-04 00:01:14  4.539
    4  2022-10-04 00:01:30  4.584
    5  2022-10-04 00:01:48  4.523
    6  2022-10-04 00:02:05  4.498
    7  2022-10-04 00:02:21  4.625
    8  2022-10-04 00:02:38  4.497
    9  2022-10-04 00:02:54  4.406
    10 2022-10-04 00:03:12  4.502
    11 2022-10-04 00:03:28  4.494
    12 2022-10-04 00:03:45  4.445
    13 2022-10-04 00:04:01  4.438
    14 2022-10-04 00:04:18  4.433
    15 2022-10-04 00:04:36  4.441
    16 2022-10-04 00:04:52  4.400
    17 2022-10-04 00:05:09  4.221
    18 2022-10-04 00:05:27  4.115
    19 2022-10-04 00:05:43  4.009
    20 2022-10-04 00:06:01  4.230
    21 2022-10-04 00:06:18  4.360
    22 2022-10-04 00:06:34  4.331
    23 2022-10-04 00:06:51  4.178
    24 2022-10-04 00:07:07  4.238
    25 2022-10-04 00:07:25  4.125
    26 2022-10-04 00:07:43  3.988
    27 2022-10-04 00:08:17  3.573
    28 2022-10-04 00:08:34  4.471
    29 2022-10-04 00:08:50  4.567
    30 2022-10-04 00:09:08  4.451
    31 2022-10-04 00:09:25  4.311
    32 2022-10-04 00:09:42  4.280
    33 2022-10-04 00:09:59  4.439
    34 2022-10-04 00:10:17  4.410
    35 2022-10-04 00:10:35  4.335
    36 2022-10-04 00:10:51  4.193
    37 2022-10-04 00:11:08  4.140
    38 2022-10-04 00:11:25  4.020
    39 2022-10-04 00:11:43  3.872
    40 2022-10-04 00:12:01  3.859
    41 2022-10-04 00:12:17  4.062
    42 2022-10-04 00:12:34  3.861
    43 2022-10-04 00:12:51  3.780
    44 2022-10-04 00:13:07  3.680
    45 2022-10-04 00:13:25  3.909
    46 2022-10-04 00:13:42  3.852
    47 2022-10-04 00:13:58  3.867
    48 2022-10-04 00:14:15  3.715
    49 2022-10-04 00:14:32  3.534
    50 2022-10-04 00:14:49  3.349
    51 2022-10-04 00:15:06  3.213
    52 2022-10-04 00:15:23  3.215
    53 2022-10-04 00:15:39  3.246
    54 2022-10-04 00:15:55  3.195
    55 2022-10-04 00:16:14  3.164
    56 2022-10-04 00:16:30  3.149
    57 2022-10-04 00:16:47  3.281
    58 2022-10-04 00:17:03  3.366
    59 2022-10-04 00:17:20  3.295
    60 2022-10-04 00:17:38  3.487
    61 2022-10-04 00:17:54  3.534
    62 2022-10-04 00:18:11  3.430
    63 2022-10-04 00:18:27  3.474
    64 2022-10-04 00:18:44  3.275
    65 2022-10-04 00:19:01  3.584
    66 2022-10-04 00:19:18  3.616
    67 2022-10-04 00:19:34  3.506
    68 2022-10-04 00:19:51  3.561
    69 2022-10-04 00:20:08  3.316
    70 2022-10-04 00:20:27  3.396
    71 2022-10-04 00:20:43  3.536
    72 2022-10-04 00:20:59  3.631
    73 2022-10-04 00:21:16  3.573
    74 2022-10-04 00:21:33  3.514
    75 2022-10-04 00:21:50  3.603
    76 2022-10-04 00:22:07  3.591
    77 2022-10-04 00:22:23  3.591
    78 2022-10-04 00:22:40  3.659
    79 2022-10-04 00:23:14  4.056
    

    df2:

                     time     speed
    0 2022-10-03 00:03:23  4.646689
    1 2022-10-03 00:08:24  5.328516
    2 2022-10-03 00:13:24  5.895778
    3 2022-10-03 00:18:24  5.665014
    4 2022-10-03 00:22:25  6.313763
    
    

    我知道的是,我可以使用 pandas.merge_asof 将时间与“tolerance”参数对齐,使其尽可能接近。从那时起,我尝试了 pandas.groupby 和 pandas.rolling 的几种组合,但仍然难以获得所需的结果。我不确定如何继续,所以任何帮助都将不胜感激。

  • 我正在尝试使用 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 上获取伊斯兰/希吉拉历法月份名称?

  • 我有以下数据: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, ...) 中的错误:字符串不是标准的明确格式\'

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

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

    我正在尝试从雅虎财经 (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

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

  • 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 分钟,谢谢

  • Al C 2月前 0 只看Ta
    引用 7

    在 Docker v26.0.1 和 debian 12 上,通过更改 docker.service 文件中的属性。
    通常我会逐步使用这个答案: https://.com/a/56126715/22904257 但是有人提到标志'-g '不起作用(我无法重新启动服务)并且我像这样更改标志:

    ExecStart=/usr/bin/dockerd --data-root /my/path/for/containers -H fd:// --containerd=/run/containerd/containerd.sock
    
  • 对于那些在 2020 年寻找的人来说。以下内容适用于 Windows 10 机器:

    1. 在 Hyper-V 管理器的全局操作窗格中,单击 Hyper-VSettings…
    2. 在虚拟硬盘下,将位置从默认位置更改为您想要的位置。
    3. 在虚拟机下,将位置从默认位置更改为所需位置,然后单击应用。

    enter image description here

    1. 单击“确定”关闭“Hyper-V 设置”页面。
  • 您可以尝试在您喜欢的位置重新安装docker。镜像和docker文件是独立的。

  • 对于使用 17.06.0-ce-mac19 版本的 Mac 用户,您只需从用户界面的首选项选项中移动磁盘映像位置即可。只需更改磁盘映像的位置,它就会起作用(通过单击 移动磁盘映像 )并重新启动 docker。使用这种方法,我能够使用外部硬盘来存储 docker 映像。

  • 在 AWS Ubuntu 16.04 服务器上,我将 Docker 镜像放在单独的 EBS 上,安装在 /home/ubuntu/kaggle/ 上,位于 docker 目录下

    我的初始化脚本的这个片段运行正常

    # where are the images initially stored?
    sudo docker info | grep "Root Dir"
    # ... not where I want them
    
    # modify the configuration files to change to image location
    # NOTE this generates an error
    # WARNING: Usage of loopback devices is strongly discouraged for production use.
    #          Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
    # see https://.com/questions/31620825/
    #     warning-of-usage-of-loopback-devices-is-strongly-discouraged-for-production-use
    
    sudo sed -i   ' s@#DOCKER_OPTS=.*@DOCKER_OPTS="-g /home/ubuntu/kaggle/docker"@ '  /etc/default/docker
    
    sudo chmod -R ugo+rw /lib/systemd/system/docker.service
    sudo cp  /lib/systemd/system/docker.service /etc/systemd/system/
    sudo chmod -R ugo+rw /etc/systemd/system/
    
    sudo sed -i ' s@ExecStart.*@ExecStart=/usr/bin/dockerd $DOCKER_OPTS -H fd://@ '  /etc/systemd/system/docker.service
    sudo sed -i '/ExecStart/a EnvironmentFile=-/etc/default/docker' /etc/systemd/system/docker.service
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    sudo docker info | grep "Root Dir"
    # now they're where I want them
    
  • 引用 12

    在 Fedora 26 以及可能许多其他版本上,您可能会在如上所述移动基本文件夹位置后遇到错误。如果您将其移动到 /home 下的某个位置,则尤其如此。这是因为 SeLinux 启动并阻止 docker 容器从此位置运行其许多程序。

    简短的解决方案是在添加 -g 参数时删除 --enable-selinux 选项。

  • 在 openSUSE Leap 42.1 上

    $cat /etc/sysconfig/docker 
    ## Path           : System/Management
    ## Description    : Extra cli switches for docker daemon
    ## Type           : string
    ## Default        : ""
    ## ServiceRestart : docker
    #
    DOCKER_OPTS="-g /media/data/installed/docker"
    

    请注意,DOCKER_OPTS 最初是空的,我所做的只是添加参数以使 docker 使用我的新目录

  • 我使用的是 docker 版本 19.03.14。以下链接对我有帮助。

    检查此链接

    在 /etc/docker/daemon.json 文件中我添加了以下部分:-

     {
        "data-root": "/hdd2/docker",
        "storage-driver": "overlay2"
     }
    
  • @suther:可能?现在有没有遇到麻烦的情况?对于技术文档来说,可能有点不精确,如果我遇到问题,那么我想知道具体什么时候发生,问题是如何引起的,以及结果会如何。

  • jimc 2月前 0 只看Ta
    引用 16

    不要创建软链接。原因请参见我之前发表的评论...您可能会遇到“docker rm”命令的问题!

  • 一个更简单的解决方案是创建一个软链接指向你想要的任何内容,例如

    link -s /var/lib/docker /mnt/whatever
    

    它在我的 CentOS 6.5 服务器上运行良好。

  • 正如@mbarthelemy 所建议的,这可以通过 -g 直接启动 docker 守护进程时的选项来完成。

    但是,如果 docker 作为系统服务启动,则不建议修改该 /etc/default/docker 这里 有一个指南 .

    在 Linux(或 Mac)系统或 /etc/docker/daemon.json 创建一个 %programdata%\docker\config\daemon.json 。如果此文件不用于其他用途,则以下字段就足够了:

    {
        "graph": "/docker/daemon_files"
    }
    

    这里假设你想让docker保存数据的新位置是 /docker/daemon_files

  • Linux 指南的安装后步骤 ,官方的做法 如下:

    1. p1

       sudo systemctl edit docker.service
    2. p2

       [Service] ExecStart= ExecStart=/usr/bin/dockerd --graph="/mnt/docker"

    保存文件。(它将创建: /etc/systemd/system/docker.service.d/override.conf )

    1. p4

       sudo systemctl daemon-reload
    2. p5

       sudo systemctl restart docker.service

    此后,如果您可以删除 /var/lib/docker 文件夹(如果其中没有任何需要备份的图像)。

  • 引用 20

    如果您按照 Debian 的最新 docker 安装说明操作,您会获得 SysVinit 脚本,但它们不会被使用。请参阅 github.com/docker/docker/issues/9889#issuecomment-109766580

返回
作者最近主题: