Docker简单入门

2023-03-16 15:28:45 浏览数 (1)

Docker简单入门

简介

Docker有两个比较重要的概念镜像容器

  • 镜像:一种文件存储形式。一个磁盘的数据拷贝到另一个磁盘中,另一个磁盘中的这份数据就是镜像。
  • 容器:利用开源的容器引擎,让开发者打包应用以及依赖到一个可移植的镜像中,然后部署到服务器上。

color{red}容器是实例化后的镜像

Docker作用:将应用程序与该程序的依赖,打包在一个文件里,运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。color{red}避免环境不统一的问题。Docker 也支持跨平台。

镜像还能有另一个功能:内网依赖提供给外网用。(不确定合不合理,学校和tx的合作项目,tx导师就是这么干的)

这里顺带提一下,开发时一般会弄两条流水线的原因:

一条用于推上去测试用,另一条在小组合并分支的时候自动触发(测试用的会减少检测分支命名规则、发送邮件通知评审人两个环节)

Docker只是初步了解,多多包涵。有问题还希望评论提醒。

Docker常用操作

查看命令用法

docker:查看Docker的命令用法

docker COMMAND --help:查看指定命令详细用法

镜像操作

  1. 查找镜像:docker search 关键词

  1. 下载镜像:docker pull 镜像名:Tag(Tag表示版本,latest,表示最新版本)

  1. 查看镜像:docker images(查看本地所有镜像)

  1. 查看镜像的详细信息:docker inspect 镜像ID或镜像名:Tag

  1. 删除镜像:docker rmi -f 镜像ID或镜像名:Tagrmirm是删除,而i是镜像,因为docker rm是删除容器的命令,-f表示强制删除)

容器操作

创建容器,并运行一个命令:docker run 镜像ID或镜像名:Tag

代码语言:javascript复制
// 可加参数
--name:指定容器名,不指定自动命名
-i:以交互模式运行容器
-t:分配一个伪终端
-p:指定映射端口,将主机端口映射到容器内的端口。-p 5000:80就是将容器的80端口映射给主机的5000端口,之后就能通过5000端口访问
-d:后台运行容器
-v:指定挂载主机目录,默认是读写模式`rw`,`ro`表示只读

查看容器列表:docker ps(不加参数表示查看正在运行的容器,-a表示查看所有容器,-q表示只查看容器ID)

启动容器:docker start 容器ID或容器名

停止容器:docker stop 容器ID或容器名

删除容器:docker rm -f 容器ID或容器名)

查看日志:docker logs 容器ID或容器名

进入正在运行的容器:docker exec -it 容器ID或容器名 /bin/bash

代码语言:javascript复制
/bin/bash是固定写法。
因为docker后台必须运行一个进程,否则容器就会退出。
在这里表示启动容器后启动bash。

拷贝文件

主机中文件(文件夹)拷贝到容器中:

代码语言:javascript复制
docker cp 主机文件路径 容器ID或容器名:容器路径

容器中文件(文件夹)拷贝到主机中:

代码语言:javascript复制
docker cp 容器ID或容器名:容器路径 主机文件路径

文件:

文件夹:

  1. 获取容器详细信息:docker inspect 容器ID或容器名
  2. 更新镜像:docker commit -m="描述信息" -a="作者" 容器ID或容器名 镜像:Tag

容器和虚拟机区别

缺点:

  和虚拟机相比,Docker隔离性更弱,属于进程之间的隔离,而虚拟机可以实现系统级别的隔离。

  Docker的安全性也更弱,Docker的租户root和宿主机的root等同,一旦容器内的用户从普通用户权限提升为root权限,它就直接具备了宿主机的root权限,进而可进行无限制的操作

0 人点赞