限制Ubuntu SSH镜像容器的磁盘大小

v7pvogib  于 2023-06-21  发布在  其他
关注(0)|答案(1)|浏览(115)

如何在Docker中限制启用SSH的Ubuntu 20.04映像容器的存储使用?

  • 我明白不应该将Docker作为VM技术使用,但这仅用于教育目的 *
    docker-compose.yml:
version: '3'

services:
  ubuntu-vm:
    build: .
    image: ubuntu-ssh
    ports:
      - "2222:22"
    environment:
      - ROOT_PASSWORD=password
    restart: always
    networks:
      mynetwork:
        ipv4_address: 172.24.0.2

networks:
  mynetwork:
    driver: bridge
    ipam:
      config:
        - subnet: 172.24.0.0/16

Dockerfile:

FROM ubuntu:latest

RUN apt-get update && \
    apt-get install -y openssh-server && \
    mkdir /var/run/sshd

RUN echo 'root:password' | chpasswd

RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

EXPOSE 22

CMD [ "/usr/sbin/sshd", "-D", "-e" ]

我尝试storage_opt: size: 100G添加到compose文件中,但在容器中执行df -H时,它返回了主机磁盘可用大小和磁盘使用情况(在本例中使用了400 gb,可用1.9tb)

我是否必须在主机中创建一个磁盘并将其Map到容器的/dev/sdx磁盘?或者有没有更好的方法来实现这一点,即容器确实可以访问主机磁盘的完整部分,但只是其中的一部分。

y1aodyip

y1aodyip1#

我尝试添加storage_opt:size:100 G到compose文件,但是在容器中执行df -H时,它返回主机磁盘可用大小和磁盘使用情况(在本例中使用了400 gb,可用1.9tb)
当然,因为df -h将显示 device 的大小,所以特定文件系统上没有可用的配额限制。创建一个大于100G的文件进行检查。

$ docker run -ti --rm --storage-opt size=5G alpine
# dd if=/dev/random of=file bs=10M count=1023
dd: error writing 'file': Quota exceeded
512+0 records in
511+0 records out

这很可能是docker存储驱动程序特定的-我在btrfs上测试过。

相关问题