可以在docker容器里跑windows么

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可以在docker容器里跑windows么相关的知识,希望对你有一定的参考价值。

Docker容器运行后,如何进入容器进行操作呢?起初我是用SSH。如果只启动一个容器,用SSH还能应付,只需要将容器的22端口映射到本机的一个端口即可。当我启动了五个容器后,每个容器默认是没有配置SSHServer的,安装配置SSHD,映射容器SSH端口,实在是麻烦。我发现很多Docker镜像都是没有安装SSHD服务的,难道有其他方法进入Docker容器?有很多种方法,包括使用dockerattach命令或nsenter工具等。使用attach命令有时候并不方便。当多个窗口同时attach到同一个容器的时候,所有窗口都会同步显示。nsenter可以访问另一个进程的名字空间。为了连接到容器,你还需要找到容器的第一个进程的PID,可以通过下面的命令获取。PID=$(dockerinspect–format“.State.Pid”)//将换成你的容器id通过这个PID,就可以连接到这个容器:$nsenter–target$PID–mount–uts–ipc–net–pid更简单的,建议大家下载.bashrc_docker,并将内容放到.bashrc中。
【TSD,M】
参考技术A 可以的。
https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/quick-start-windows-10
Windows Server 2016的原生docker(不是运行在linux虚拟机里的docker),能以共享主机内核的模式来运行容器;这种模式下,容器基本映像与主机系统一致,既容器只能跑windows。
win10也有原生docker了,但是win10内核没有为docker专门重构,只能以hyper-v模式来运行容器;这种模式下,一个容器就是一个完整的hyper-v虚拟机(浪费资源,违背docker的初衷),容器能跑任何操作系统。本回答被提问者采纳

docker容器日志清理

最近发现linux(Centos 7)虚拟机的空间不够了,想创建新的容器都失败。剩下不到100M。之前还有好几个G。然后每天不定期查看磁盘空间,发现不断被蚕食。今天比昨天就少了100M;然后下午比上午又少了50M。谁在吞噬服务器的硬盘空间?

docker。准确地说,是docker容器里跑的java程序,不断在产生日志。进入容器目录里查看,可以看到日志文件约800M。是一个日志文件,太夸张了。这个虚拟机上跑了好几个docker容器。

目前的解决办法是参照网上教程,制作一个脚本,手动运行,将docker容器上所有的日志都清零。下面是详细介绍,包括每日如何查看硬盘空间。

1、查看硬盘空间

df -Th


从中可知,消耗最多的是/dev/mapper/centos-root。其实就是操作系统的根目录。转到操作系统根目录,然后看哪些目录占空间最多

su
cd /
du -h -x --max-depth=1

2、根据昨天与今天查看硬盘空间占用情况的对比

可知是目录var在不断膨胀。

同理不断细化,可知是 /var/lib/docker 的问题。

3、不断深入

最后确认是每个容器内的日志惹的祸

4、制作一个sh文件,

名曰 clean_docker_log.sh,内容为:

#!/bin/sh
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "======== end clean docker containers logs ========"
# chmod +x clean_docker_log.sh
# ./clean_docker_log.sh

然后运行这个批处理文件,即可将所有的docker容器内的日志瞬间清零。不亦快哉。

5、运行这个批处理文件

sudo sh clean-docker-log.sh

6、小结

docker容器的日志,不是docker产生的。容器只是一个容器,它不搞这些东西。日志都是承载在容器里的应用自己产生的。

运行批处理文件,手动删除日志,治标不治本。韭菜割不尽,春风吹又生;千金散尽还复来,一行白鹭上西天。而且日志删掉,在开发环境可以,生产环境是应该至少保留一段时间的。教程推荐的做法是使用docker compose,可以设置日志最大尺寸。这个东东我目前还不熟悉,所以先不搞。

网上教程:
Docker容器日志查看与清理

以上是关于可以在docker容器里跑windows么的主要内容,如果未能解决你的问题,请参考以下文章

Docker容器环境配置

浅谈Windows与Linux环境中的Docker容器

dock helloworld

企业运维之 docker 的介绍和部署

手把手教您在 Windows Server 2019 上使用 Docker

docker容器日志清理