你好,我想请教下docker里的centos容器怎么改变udp缓冲区,谢谢,目前好像改不了说的文件readonly?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你好,我想请教下docker里的centos容器怎么改变udp缓冲区,谢谢,目前好像改不了说的文件readonly?相关的知识,希望对你有一定的参考价值。
要更改容器内的 UDP 缓冲区,可以通过挂载 sysctl.conf 文件来实现。sysctl.conf 文件包含了系统的内核参数设置,可以使用它来更改容器内的 UDP 缓冲区大小。
以下是一些步骤:
在主机上创建一个 sysctl.conf 文件,其中包含要更改的内核参数。例如,要更改 UDP 缓冲区大小,可以在 sysctl.conf 文件中添加以下行:
net.core.rmem_max = 26214400
net.core.wmem_max = 26214400
在运行容器时,将主机上的 sysctl.conf 文件挂载到容器内的 /etc/sysctl.d 目录。例如:
docker run -it --sysctl=/path/to/sysctl.conf centos
在容器内,使用 sysctl 命令来加载新的内核参数设置。例如:
sysctl -p /etc/sysctl.d/sysctl.conf
请注意,如果容器内的 /etc/sysctl.conf 文件是只读的,那么可能需要使用 --privileged 选项来启动容器,以便具有足够的权限来更改该文件。然而,这并不是一个安全的做法,因为容器中的应用程序可能会访问到潜在危险的内核参数设置,所以最好避免使用 --privileged 选项。
参考技术A UDP缓冲区的值应该在 /proc/ 目录的相关文件里, 在容器里这个目录是用的宿主机的,所以是只读权限, 如果要修改,那么创建容器的时候要加入提权参数,具体可以搜索一下 容器提权CentOS7下使用Docker容器化.net Core 2.2
原文:CentOS7下使用Docker容器化.net Core 2.2一、使用 yum 安装(CentOS 7下)
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
二、安装 Docker
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。
1、移除旧的版本
$ sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
2、安装一些必要的系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3、添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、更新 yum 缓存
sudo yum makecache fast
5、安装 Docker-ce
sudo yum -y install docker-ce
6、启动 Docker 后台服务
sudo systemctl start docker
7、测试运行 hello-world
[[email protected] /]# docker run hello-world
二、Asp.Net Core2.2 web程序
dockerfile是你的应用部署到docker上所必须的配置信息,只是个不带扩展名的纯文本文件而已
设置Makefile属性【始终复制】
Dockerfile内容为
FROM microsoft/dotnet:2.2-aspnetcore-runtime #基础镜像为dotnetcore MAINTAINER demo #作者 LABEL description="this is a test website" #描述 LABEL version="1.0" #描述 WORKDIR /app #工作目录 COPY . . #将当前目录下的文件,复制到WORKDIR目录 EXPOSE 8888 #容器暴漏8888端口,与上一步设置的端口一致 ENTRYPOINT ["dotnet","demo.dll"] #运行容器的命令
修改Program.cs文件
namespace demo { public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseUrls("http://*:8888") .UseStartup<Startup>(); } }
发布,文件系统
默认位置
demo\\bin\\Release\\netcoreapp2.2\\publish
三、构建镜像
1、切换到发布目录
[[email protected] publish]
2、修改Makefile文件
指定容器对外暴露端口80。注意,COPY .后面有空格,表示是当前位置,意思是从当前位置复制文件到/publish目录下
3、根据当前目录下dockerfile配置文件,进行打包
[[email protected] publish]# docker build -t demo .
4、查看我们打包好的镜像。
[[email protected] publish]# docker images
四、运行docker容器
[[email protected] publish]# docker run -d -p 8888:8888 demo
-p是进行宿主和容器之间端口的映射,(-p 宿主端口:容器端口)
-d命令,容器就会一直运行,即使关掉终端窗口
检验docker容器是否运行成功
五、测试
本机要输Centos的IP
Centos内访问localhost就可以了
说明
1、配置docker开机启动
systemctl enable docker
2、确认容器有在运行
[[email protected] /]# docker ps
CONTAINER ID:容器ID
NAMES:自动分配的容器名称
在容器内使用docker logs命令,查看容器内的标准输出
3、开始/停止容器
[[email protected] /]# docker start/stop 容器id或者容器名
4、重启docker服务,遇到此类错误
原因是docker服务挂掉了
systemctl restart docker
以上是关于你好,我想请教下docker里的centos容器怎么改变udp缓冲区,谢谢,目前好像改不了说的文件readonly?的主要内容,如果未能解决你的问题,请参考以下文章
你好,我想请教你一下tesseract2.04 训练的一些问题