最后
面试是跳槽涨薪最直接有效的方式,马上金九银十来了,各位做好面试造飞机,工作拧螺丝的准备了吗?
掌握了这些知识点,面试时在候选人中又可以夺目不少,暴击9999点。机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出。
3.5:设置stable存储库。
sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”
3.6:再更新一下apt包索引。
sudo apt-get update
3.7:安装最新版本的Docker CE。
sudo apt-get install -y docker-ce
如果想安装特定版本的Docker CE,先用apt-cache madison docker-ce
命令列出可用的版本,然后再根据版本号安装。第二列是版本字符串,第三列是存储库名称,它指示包来自哪个存储库,以及扩展它的稳定性级别。要安装一个特定的版本,将版本字符串附加到包名中,并通过等号(=)分隔它们。安装命令为sudo apt-get install docker-ce=<VERSION>
3.8:查看docker版本号
docker -v
3.8:查看docker服务是否启动
systemctl status docker
3.9:若未启动,则启动docker服务
sudo systemctl start docker
3.10:验证是否启动成功,通过hello-world
镜像,启动容器。有如下输出则docker安装启动成功。
sudo docker run hello-world
四:Docker 的四个基本概念
仓库注册中心(Registry)
集中存放仓库(镜像文件)的场所。它可分为私有和公有两种形式。
例如最大的官方注册中心:https://hub.docker.com/
国内也有许多例如:http://hub.daocloud.io/
仓库(Repository)
对镜像进行分类管理。例如Mysql仓库,存放Mysql不同版本(tag)相关的镜像;Tomcat仓库,存放Tomcat不同版本(tag)相关的镜像;
镜像(Image)
容器(Container)
镜像的运行实例。它可以被启动,开始,停止和删除。每个容器都是相互隔离,保证安全的平台。镜像和容器的关系好比java中class类和对象的关系。
五:Docker 镜像
5.1:列出镜像列表:docker images
或者 docker image ls
5.2:在网络中搜索镜像:docker search 镜像名称
5.3:拉取镜像:官方提供了公共的镜像仓库:https://hub.docker.com/,我们可以使用命令docker pull从这获取镜像,格式为:
docker pull [选项] [Docker Registry 地址[:端口]/]仓库名[:标签]
Docker镜像仓库地址:地址格式一般是<域名/IP>[:端口],默认是Docker Hub。
仓库名:两段式名称<用户名>/<软件名>,若地址是Docker Hub,不显示写出用户名,默认为library,即官方镜像。
默认从公共的官方镜像仓库拉取,由于在国外所以速度比较慢。可以配置国内的仓库注册中心,例如ustc
。
在宿主机使用命令vi /etc/docker/daemon.json
命令打开文件,如果没有该文件则先创建。然后在配置文件中加入以下内容:
{
“registry-mirrors”:[“https://docker.mirrors.ustc.edu.cn”]
}
然后重启docker服务,命令为systemctl restart docker
5.4:删除镜像:docker image rm 镜像名称[:tag] 或者 docker image rm 镜像ID (image rm可以缩写为rmi)
删除所有镜像docker rmi $(docker images -q)
5.5:导出镜像:docker save 镜像名称[:tag]/镜像ID > /root/xx.tar.gz
5.6:导入镜像:docker load < /root/xx.tar.gz
5.7:查看镜像历史提交记录:docker history 镜像名[:标签]/镜像ID
六:Docker 容器
6.1:创建并运行容器
以交互方式
运行容器:
docker run -it --name 容器名称 repository:tag/imageID /bin/bash
以守护进程方式
运行容器:
docker run -di --name 容器名称 repository:tag/imageID #推荐
创建容器命令docker run
常用的参数说明:
-
-i
:运行容器 -
-t
:容器启动后进入其命令行。加-it两个参数后,容器创建后登录进去。即分配一个伪终端。 -
--name
:为创建的容器命名。 -
-v
:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。 -
-d
:在 run 后面加上-d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。 -
-p
:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
通过run命令创建并进入容器后,再通过exit命令退出容器后,容器则停止。如果需要再次进入该容器,则先通过start命令启动容器,再使用exec/attach命令进入容器。
6.2:启动停止容器
docker start 容器名称/容器ID
docker stop 容器名称/容器ID
6.3:进入正在运行的容器
docker exec -it 容器名称/容器ID /bin/bash #推荐,因为退出容器后容器不会停止
docker attach 容器名称/容器ID #此命令进入容器后,退出则容器也停止,而exec命令不会
6.4:查看容器列表
docker ps #查看正在运行的容器
docker ps -a #查看历史运行过的容器
docker ps -l #查看最近运行过的容器
6.5:删除容器
docker rm 容器名称/容器ID
docker rm ‘docker ps -a -q’ #删除所有容器
6.6:复制文件,该命令是双向的,可以从宿主机到容器,从容器到宿主机
docker cp 源文件 目标文件
例如,docker cp /root/myApp.war myCentos:/usr/local/
。
/root/myApp.war是宿主机的路径,myCentos是容器名称,/usr/local/是容器内的路径。
6.7:查看容器运行的各种数据
docker inspect 容器名称/容器ID
七:运行容器测试用例
7.1:Mysql 部署
拉取Mysql镜像
docker pull mysql
创建并运行Mysql容器:-p代表端口映射,将容器运行端口3306映射到宿主机的端口33060。-e代表添加环境变量,MYSQL_ROOT_PASSWORD是root用户的登录密码。
docker run -di --name mysql -p 33060:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
进入容器
docker exec -it mysql /bin/bash
在容器里登录mysql
mysql -u root -p
在宿主机登录mysql
mysql -u root -h 容器IP -P 3306 -p
远程登录mysql
mysql -u root -h 宿主机IP -P 33060 -p
7.2:Tomcat 部署
拉取tomcat镜像
docker pull tomcat
创建并运行tomcat容器:-p代表端口映射,将容器运行端口8080映射到宿主机的端口9090。
docker run -di --name mytomcat -p 9090:8080 tomcat
在浏览器访问http://172.20.200.101:9090/
。此处的ip和端口号都是宿主机的。
7.3:在tomcat容器内部署web应用
创建并运行tomcat容器,并通过-v 宿主机目录:容器内目录
参数将宿主机目录和容器内目录进行映射,这样我们只要在宿主机的目录下操作,都会映射到容器相应的目录,例如将一个war包放入宿主机的映射目录下,容器相应映射目录也会更新。--privileged
参数代表赋予此容器扩展的特权,这样目录映射才会生效。
docker run -di --name mytomcat -v /root/webapps:/usr/local/tomcat/webapps -p 9090:8080 --privileged=true tomcat
我们只要把war包放入宿主机的/root/webapps目录下,不用重启tomcat容器,即可实现热部署,进行应用更新。
7.4:nginx 部署
docker run -di --name=mynginx -p 8090:80 nginx
创建并运行nginx容器之后,我们在浏览器访问http://宿主机IP:8090/
是访问不到nginx首页的,即没有相应。因为容器内nginx服务没有启动,需要进入容器后启动该nginx服务。当然也可以在容器内设置开机自动启动nginx服务。
docker exec -it mynginx /bin/bash #进入容器
/usr/sbin/nginx #启动nginx服务
此时,我们再在浏览器访问http://宿主机IP:8090/
就有相应了。
7.5:Redis 部署
docker run -di --name myredis -p 16379:6379 reids
总结
总的来说,面试是有套路的,一面基础,二面架构,三面个人。
最后,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友
/usr/sbin/nginx #启动nginx服务
此时,我们再在浏览器访问http://宿主机IP:8090/
就有相应了。
7.5:Redis 部署
docker run -di --name myredis -p 16379:6379 reids
总结
总的来说,面试是有套路的,一面基础,二面架构,三面个人。
最后,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友
[外链图片转存中…(img-Jqd75d5h-1715101825664)]
[外链图片转存中…(img-4WzTkUZ6-1715101825664)]