docker-容器运行

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

  • 结合平时运行出现的问题,什么情况下需要什么样的参数进行说明

一、容器启动

  • 以java启动应用为例

  • 容器基础镜像为openjdk:8-jdk-alpine

  • 启动命令

    docker run -d \
    -p 8080:8080 \
    --name=proxy \
    registry.cn-shanghai.aliyuncs.com/xxx/proxy:1.0.0
    

以上为一般情况下启动没有什么问题,遇到特殊情况就需要添加一些参数

二、优化

服务器异常关机重启,如何让容器自动运行?

docker run -d \
	-p 8080:8080 \
	--restart=always \ #添加 “--restart=always” 即可
	--name=proxy \
	registry.cn-shanghai.aliyuncs.com/xxx/proxy:1.0.0

如何修改服务端口,以spring boot为例?

docker run -d \
	-p 8080:8080 \
	--restart=always \
	--name=proxy \
	-e "server.port=8080" \  #添加 “-e "key=value"” 即可
	registry.cn-shanghai.aliyuncs.com/xxx/proxy:1.0.0

如何切换成线上服务配置文件?

docker run -d \
	-p 8080:8080 \
	--restart=always \
	--name=proxy \
	-e "spring.profiles.active=prod" \ #添加 “-e "key=value"” 即可
	-e "server.port=8080" \  
	registry.cn-shanghai.aliyuncs.com/xxx/proxy:1.0.0

修改容器内配置文件的需求很频繁?
-----将容器内的配置文件挂载到宿主系统中,可以随意修改,修改后需要重启

docker run -d \
	-p 8080:8080 \
	--restart=always \
	-v /docker/config/proxy:/config \ #将容器内的配置文件挂载到宿主系统中,可以随意修改,修改后需要重启
	--name=proxy \
	-e "spring.profiles.active=prod" \ 
	-e "server.port=8080" \  
	registry.cn-shanghai.aliyuncs.com/xxx/proxy:1.0.0

docker容器不断产生日志文件,导致磁盘空间不足?
------添加 log-driver=“none” ,关闭容器日志

docker run -d \
	-p 8080:8080 \
	--restart=always \
	--log-driver="none" \
	-v /docker/config/proxy:/config \ 
	--name=proxy \
	-e "spring.profiles.active=prod" \ 
	-e "server.port=8080" \  
	registry.cn-shanghai.aliyuncs.com/xxx/proxy:1.0.0

如何让容器内的端口全部映射到宿主系统进行访问?
-----去掉-p 8080:8080 ,添加 --net host

docker run -d \
	--net host
	--restart=always \
	--log-driver="none" \
	-v /docker/config/proxy:/config \ 
	--name=proxy \
	-e "spring.profiles.active=prod" \ 
	-e "server.port=8080" \  
	registry.cn-shanghai.aliyuncs.com/xxx/proxy:1.0.0

如何限制容器的内存大小?
-----添加 -m 500M

docker run -d \
	 -m 500M \
	--net host \
	--restart=always \
	--log-driver="none" \
	-v /docker/config/proxy:/config \ 
	--name=proxy \
	-e "spring.profiles.active=prod" \ 
	-e "server.port=8080" \  
	registry.cn-shanghai.aliyuncs.com/xxx/proxy:1.0.0

如何限制容器的cpu使用核数
-----首先使用top命令,按1,查看核数
-----使用–cpus=2 命令,表示随机使用cpu2个核心

docker run -d \
	--cpus=2 \
	 -m 500M \
	--net host \
	--restart=always \
	--log-driver="none" \
	-v /docker/config/proxy:/config \ 
	--name=proxy \
	-e "spring.profiles.active=prod" \ 
	-e "server.port=8080" \  
	registry.cn-shanghai.aliyuncs.com/xxx/proxy:1.0.0

如何指定并限制容器的cpu使用核数
-----首先使用top命令,按1,查看核数
-----使用–cpuset-cpus=“1,3” 命令,表示指定使用cpu2个核心,分别是cpu1和cpu3

docker run -d \
	--cpuset-cpus="1,3" \
	 -m 500M \
	--net host \
	--restart=always \
	--log-driver="none" \
	-v /docker/config/proxy:/config \ 
	--name=proxy \
	-e "spring.profiles.active=prod" \ 
	-e "server.port=8080" \  
	registry.cn-shanghai.aliyuncs.com/xxx/proxy:1.0.0

在alpine镜像容器中使用jdk的监控工具如jstack,jstat,jmap,无法使用?
-----添加–init

docker run -d \
	 -m 500M \
	--net host \
	--restart=always \
	--log-driver="none" \
	-v /docker/config/proxy:/config \ 
	--name=proxy \
	-e "spring.profiles.active=prod" \ 
	-e "server.port=8080" \  
	--init \
	registry.cn-shanghai.aliyuncs.com/xxx/proxy:1.0.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值