文末
从转行到现在,差不多两年的时间,虽不能和大佬相比,但也是学了很多东西。我个人在学习的过程中,习惯简单做做笔记,方便自己复习的时候能够快速理解,现在将自己的笔记分享出来,和大家共同学习。
个人将这段时间所学的知识,分为三个阶段:
第一阶段:HTML&CSS&JavaScript基础
第二阶段:移动端开发技术
第三阶段:前端常用框架
-
推荐学习方式:针对某个知识点,可以先简单过一下我的笔记,如果理解,那是最好,可以帮助快速解决问题;
-
大厂的面试难在,针对一个基础知识点,比如JS的事件循环机制,不会上来就问概念,而是换个角度,从题目入手,看你是否真正掌握。所以对于概念的理解真的很重要。 开源分享:docs.qq.com/doc/DSmRnRG… COPY . .
Bind port and start
EXPOSE 8888
CMD [ "npm", "start" ]
与Node 官网例子的区别主要是增加了安装程序(RUN)这一步,因为ocr调用的还是宿主机器的可执行程序。
新增的命令(在Linux宿主机下安装软件)如下:
RUN \
DEBIAN_FRONTEND=noninteractive apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get -y install tesseract-ocr
- .dockerignore
与.gitignore类似,用以忽略不进行构建的资源文件/目录。
node_modules
构建、运行(Build –> Ship –> Run)
容器可以理解为镜像的一个实例。
可能用到的命令
从Dockerfile构建一个镜像
docker build -t name:version
查看新构建的镜像
docker images
以后台模式从镜像启动容器,并将映射端口:本地端口:容器内端口
docker run -p 8888:8888 -d name:version
查看正在运行的容器
docker ps
查看本地端口与容器端口的映射
docker port
查看容器中应用控制台打印出的日志
docker logs
查看docker默认ip
docker-machine ip default
测试Web应用是否可用(这里采用默认的docker-machine地址,怎样才能使用localhost访问,还没找到方法??)
curl http://$(docker-machine ip default):port
Copy容器内的文件到宿主本地
docker cp :/usr/src/app/log.txt '本地磁盘路径'
进入容器
docker exec -it /bin/bash
Note:
1. boot2docker中docker用户的初始密码为:tcuser;root用户没有密码,在docker用户下使用sudo su - root切换到root;
2. 要运行容器,不必每次都执行docker run,这样每次都会生成新的容器,可以通过docker start <container id>启动之前被关闭的容器;
查看docker容器中Linux系统版本信息
cat /proc/version
删除当前目录下所有内容(比如清除某文件夹下的临时文件)
rm -rf *
退出容器,返回docker
exit
推送本地镜像至云端
- 可采用一些服务商提供的镜像服务进行云端存储,这里用了网易蜂巢的163(私有镜像库):
Upload image to private repository on hub.c.163.com
docker login -u username -p password hub.c.163.com
docker tag hub.c.163.com//tag
docker push hub.c.163.com//tag
遇到的问题/疑问
- 将Web app构建镜像,运行容器后,通过什么地址访问?
curl http://$(docker-machine ip default):port
- 如何从容器中Copy文件到宿主机器?
docker cp <container id>:/usr/src/app/log.txt '本地磁盘路径'
- 如何在Linux(Debian)上安装tesseract-ocr软件?
-
构建后安装:首先
docker exec -it <container id> /bin/bash进入容器,然后执行apt-get update,apt-get install tesseract-ocr;这种方式仅会在当前的容器实例中安装,下次run镜像的时候,需重新安装; -
构建前安装:修改Dockerfile,将安装软件的命令写入其中,这样就将安装命令构建到镜像中,以后每次run镜像都会具有相应的软件环境;
上述几个问题都可以从可能用到的命令中找到解决方法。
最后
你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
我特地针对初学者整理一套前端学习资料