面试题4

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题4相关的知识,希望对你有一定的参考价值。

docker容器:

1、基于镜像创建一个容器,并运行

方法一:
docker create -it 镜像名(镜像ID) /bin/bash
docker start 容器名(容器ID)
方法二:
docker run -it 镜像名(镜像ID) /bin/bash
ctrl+p+q 快键退出容器

2、将镜像存出到/opt/images中,然后再导入docker中

docker  save -o /opt/images/centos 镜像名(镜像ID)
docker load < /opt/images/centos

3、将容器导出为文件,再导入docker镜像中

docker export 容器名/容器ID > 文件名
docker import 文件名 镜像名:tag

4、删除所有终止的容器

docker container prune

5、查看docker容器的当前工作目录是哪个

方法一:
docker inspect 容器名/容器id | grep "WorkingDir" 
方法二:
docker inspect -f {{.Config.WorkingDir}} 容器名/容器id 

6、基于原始镜像创建一个新的镜像的步骤

docker pull centos
docker run -it centos /bin/bash
在容器安装所需要的服务
docker commit -m "说明" -a "作者" 容器id 镜像名:tag

7、基于镜像文件创建一个新的镜像的步骤

docker load < 镜像文件名
docker run -it centos /bin/bash
在容器安装所需要的服务
docker commit -m "说明" -a "作者" 容器id 镜像名:tag

8、基于Dockerfile创建一个安装apache并且部署了网页文件的镜像

vi Dockerfile
FROM centos
MAINTAINER xukang [email protected]
RUN yum install -y httpd
ADD index.html /var/www/html/index.html
EXPOSE 80

vi index.html
<h1>1</h1>

docker build -t 镜像名:tag .

9、怎么样才能在docker容器中使用systemctl或者service命令

方法一:
docker run --privileged -itd --name test  docker.io/centos /usr/sbin/init
方法二:
docker exec -it test /bin/bash

10、运行docker容器时,映射一个80端口到本机的8080端口

docker run -itd -p 8080:80 镜像名 /sbin/init

11、docker创建一个网段为192.168.80.0/24、网关192.168.80.1的驱动为bridge的网络br

docker network create --driver bridge --subnet 192.168.80.0/24 --gateway 192.168.80.1 br

12、docker创建并运行容器,指定本机端口的8080映射到容器的80端口,使用br网络的容器net

docker run -it -p 8080:80 --network=br --name net centos:ssh /bin/bash(/sbin/init)

13、创建数据卷容器data,创建一个容器使用data中的数据卷

docker run -it -v --name data /data 镜像 /bin/bash 
docker run -it --volumes-from data --name db1 镜像 /bin/bash

14、创建一个本机80映射容器8080、容器名为web,数据卷为/data的容器

docker run -it -p 80:8080 --name web -v /data centos 

15、编写dockerfile,实现功能:开启容器就可以查看/opt中内容。

vi Dockerfile
FROM centos
MAINTAINER 作者 邮箱
WORKDIR /opt
CMD ["ls"] 

16、查看docker容器的ip地址(只要ip地址,其它内容不要)

docker inspect -f {{.NetworkSettings.Networks.bridge.IPAddress}} centos

17、创建Redis的容器

docker  run -d -p 16379:6379 redis /bin/bash

18、上传一个镜像到www.lq.com仓库的步骤

客户端:
docker tag 镜像id www.lq.com/仓库名
vi /etc/docker/daemon.json
...
systemctl restart docker

docker push www.lq.com/仓库名

19、创建一个cpu权重为1024的容器

docker run -it -c 1024 镜像

20、创建一个物理内存为400,虚拟内存400的容器

docker run -it -m 400 [--memory-swap 800] 镜像

21、创建一个针对/dev/sda设备的写入速率为60M,并验证

docker run -it --device-write-dps /dev/sda:60M 镜像
docker exec -it 容器id  /bin/bash
time dd if=/dev/zero of=test bs=100M count=2 oflag=direct

22、docker启动一个elk容器

docker run -it -p 5601:5601 -p 9200:9200 -p 5044:5044 --name elk sebp/elk 

以上是关于面试题4的主要内容,如果未能解决你的问题,请参考以下文章

Java进阶之光!2021必看-Java高级面试题总结

经验总结:Java高级工程师面试题-字节跳动,成功跳槽阿里!

一道经典面试题:字符串在Java中如何通过“引用”传递

Mybatis最全的高质量面试题和答案—3

2021-12-24:划分字母区间。 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 力扣763。某大厂面试

2018 – 2019 年前端 JavaScript 面试题