最新docker 基本知识,java类加载面试题

感受:

其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。

特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。

也祝愿各位同学,都能找到自己心动的offer。

分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档

拿到字节跳动offer后,简历被阿里捞了起来,二面迎来了P9"盘问"

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

Build-构建镜像 - [镜像 - 集装箱]Ship-运输镜像(从仓库和我们的主机上运输)- [仓库 - 超级码头]Run- 运行镜像(运行的镜像就是一个容器) - [容器 - 运行程序的地方]Docker运行过程:去仓库把镜像拉倒本地,然后用一条命令把镜像运行起来变成容器!

将镜像拉到本地,执行命令使其运行,成为一个容器。

镜像就是一系列的文件:应用文件、环境文件。镜像的存储格式:联合文件系统,不同目录挂载到同一个目录下

通过联合文件系统达到文件分层的效果,镜像就是一系列分层文件的组合,这些文件是只读的。联合文件系统,能够在一个目录下显示不同目录的内容

镜像的每一层都是只读的,修改时会将镜像拷到Docker容器的最上层,在修改,修改后读文件时从上往下读取

容器的最上层是可写的,除了最上层,之外的都是只读的,所以同一个镜像的可以放到很多不用容器之中,并且修改下层时互不影响

总结:Docker容器:容器的最顶层是可以RW的。容器下面的镜像:只读。=> 一份镜像可以对应多个容器,各部分独立。

docker默认仓库:hub.docker.com网易提供仓库:c.163.com

Docker 默认仓库hub.docker.comDocker 也支持在内网自己搭建仓库

docker仓库。1.hub.docker自己提供的,速度很慢2.国内自己提供的,如网易蜂巢;

可以实现自己的docker仓库,在内网使用,这样子可以隐私

docker的安装1.如果非window,要先安装docker_tools

win10: www.docker.com/products/docker#/

windowswin10之外:http://www.docker.com/products/docker-toolbox

2.安装缓存boot2docker.isohttp://pan.baicu.com/s/1qYyc0ag

MacOS Yosemite 10.10.3+(2014/6) 下载地址 https://www.docker.com/products/docker#/mac

旧版本 下载地址 https://www.docker.com/products/docker-toolbox

运行命令会看到 docker version 查看是否安装成功;

linux Redhat & CentOS 系统要求64-bit OS version 3.10

Ubuntu 系统要求64-bit OS version 3.10

uname -r 【查询linux版本】

切换到root权限下,su 更新apt-get update

uname -r 检查内核版本命令apt-get install -y docker.io

ubuntu启动docker:service docker start安装官网最新版本命令curl -s https://get.docker.com|sh

使用curl -s https://get.docker.com|sh 命令来安装docker

1.ubuntucurl来获取最新的文件apt-get来下载系统配置源的软件,可能不是最新的软件版本2.与centos不一样yum3.wget与curl的区别是wget与curl都能下载东西,只是不同的工具

docker pull 从远程拉取镜像

docker images 查看本机所有镜像

pull 从默认的码头(也就是公共的超级大的仓库 市场)(hub.docker.com) 拉取集装箱(images) 对应 shipimages 本地的仓库 可以查看共有多少个集装箱(images)

名词解释:REPOSTTORY : 镜像名字 TAG : 版本(lastest 最新版)IMAGE ID : 64 位的字符串,可以唯一标识镜像,这里只显示16位,后面的被截掉了。CREATED : 创建时间 (最后修改时间)SIZE : 大小

拉取镜像:docker pull [OPTION] NAME[:TAG] 查看镜像:docker images[OPTION] [REPOSITORY[:TAG]]

安装完成后的例子,如 : docker pull hello-world

docker images

没有提供地址的时候,使用docker pull 是从默认的仓库 下载

Docker 运行一个镜像变为容器,运行docker docker run [OPTION] IMAGE[:TAG] [COMMAND] [ARG…]

docker run流程:客户端向docker daemon发送一条pull命令,docker daemon会先在本机查找镜像,如果没找到则去远程仓库里找,然后把镜像下载到本地,下载回来后通过一定的方式将镜像运行起来,变成docker容器。

如运行 docker run hello-world

运行 nginx 先拉取 docker pull hub.c.163.com/library/nginx:latest

docker ps:查看正在机器上运行的容器

docker run -d:后台运行 docker run --help

docker exec:在运行的容器中运行命令

docker pull nginx:latest 从 hub.docker.com 仓库拉取 latest 版本的 nginx 镜像

docker run nginx:latest 在前台运行 latest 版本的 nginx 镜像,若想退出使用 Ctrl + C 快捷键即可

docker run -d nginx:latest 在后台运行一个新的 latest 版本的 nginx 镜像

docker stop nginx:latest 停止后台 latest 版本的所有镜像, command 可以是启动后的镜像 id,也可以是镜像名称

docker images 当前存在的镜像docker search name 搜索镜像docker pull name 拉取镜像,name是镜像名

docker run -d IMAGE 执行镜像 -d 后台执行docker ps 查看在docker上运行的程序

docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

exec:在运行的容器中执行命令。OPTIONS说明:-d :分离模式: 在后台运行-i :即使没有附加也保持STDIN 打开-t :分配一个伪终端

docker exec --help

docker exec -it 835 bash

好像进入linux 然后 ls which nginx ps -ef exit等

docker网络bridge与host的不一样bridge是网桥,docker和主机都有自己的ip地址,中间是通过网桥来端口映射来通信。host是共用主机的网卡

docker 开放端口给外部网络访问-p 是开放指定的端口,与上面,开本机端口8080映射到nginx的80端口-P 是由系统分配,分配没有使用的,暴露的接口给dockerdocker ps 可以查看进程,并看端口,连接

docker stop -f 停掉docker运行的f开头的镜像

docker run -d -p 8080:80 hub.c.163.com/library/nginx docker run -d -P hub.c.163.com/library/nginx

最后

为什么我不完全主张自学?
平台上的大牛基本上都有很多年的工作经验了,你有没有想过之前行业的门槛是什么样的,现在行业门槛是什么样的?以前企业对于程序员能力要求没有这么高,甚至十多年前你只要会写个“Hello World”,你都可以入门这个行业,所以以前要入门是完全可以入门的。
②现在也有一些优秀的年轻大牛,他们或许也是自学成才,但是他们一定是具备优秀的学习能力,优秀的自我管理能力(时间管理,静心坚持等方面)以及善于发现问题并总结问题。
如果说你认为你的目标十分明确,能做到第②点所说的几个点,以目前的市场来看,你才真正的适合去自学。

除此之外,对于绝大部分人来说,报班一定是最好的一种快速成长的方式。但是有个问题,现在市场上的培训机构质量参差不齐,如果你没有找准一个好的培训班,完全是浪费精力,时间以及金钱,这个需要自己去甄别选择。

我个人建议线上比线下的性价比更高,线下培训价格基本上没2W是下不来的,线上教育现在比较成熟了,此次疫情期间,学生基本上都感受过线上的学习模式。相比线下而言,线上的优势以我的了解主要是以下几个方面:
①价格:线上的价格基本上是线下的一半;
②老师:相对而言线上教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。

应该学哪些技术才能达到企业的要求?(下图总结)

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

[外链图片转存中…(img-U6CItjl6-1715625661841)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值