🗒️docker常用操作
2021-7-2
| 2023-4-26
0  |  0 分钟
type
status
date
slug
summary
tags
category
icon
password
 

Docker架构

我们要使用Docker来操作镜像、容器,就必须要安装Docker。 Docker是一个CS架构的程序,由两部分组成: 服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。 DockerHub: 一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry
利用docker xx --help命令查看语法

镜像命令

保存、导入镜像

docker save -o [保存的目标文件名称] [镜像名称] 使用docker save导出镜像到磁盘 docker save -o nginx.tar nginx:latest
使用docker load加载镜像 docker load -i nginx.tar

容器操作

容器的三个状态: 运行:进程正常运行
暂停:进程暂停,CPU不再运行,并不释放内存
停止:进程终止,回收进程占用的内存、CPU等资源

容器命令

创建并运行一个容器

创建并运行nginx容器的命令:
命令解读: docker run :创建并运行一个容器 --name : 给容器起一个名字,比如叫做mn -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口,一个容器可以创建多个端口映射,写多个-p即可. -d:后台运行容器

进入容器操作

进入容器。进入nginx容器的命令为例: docker exec -it mn bash 命令解读: docker exec :进入容器内部,执行一个命令 -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互 mn :要进入的容器的名称 bash:进入容器后执行的命令,bash是一个linux终端交互命令 进入nginx的HTML所在目录 /usr/share/nginx/html 容器内部会模拟一个独立的Linux文件系统,看起来如同一个linux服务器一样 cd /usr/share/nginx/html/

数据卷(数据管理)

数据卷(volume)是一个虚拟目录,指向一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。 这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了 宿主机文件系统中的某个目录。
注:如果误删docker容器,但是并未对其指定挂在数据卷,数据可能会在volume中找到.

创建和查看数据卷

需求:创建一个数据卷,并查看数据卷在宿主机的目录位置 ① 创建数据卷 docker volume create html ② 查看所有数据 docker volume ls 结果:
notion image
③ 查看数据卷详细信息卷 docker volume inspect html 结果:
notion image
可以看到,我们创建的html这个数据卷关联的宿主机目录为/var/lib/docker/volumes/html/_data目录。

数据卷操作

docker volume create:创建数据卷 docker volume ls:查看所有数据卷 docker volume inspect:查看数据卷详细信息,包括关联的宿主机目录位置 docker volume rm:删除指定数据卷 docker volume prune:删除所有未使用的数据卷

挂载数据卷

我们在创建容器时,可以通过 -v 参数来挂载一个数据卷到某个容器内目录,命令格式如下: docker run \ --name mn \ -v html:/root/html \ -p 8080:80 nginx \ 这里的-v就是挂载数据卷的命令: -v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中
挂载本地目录 容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。关联关系如下: 带数据卷模式:宿主机目录 --> 数据卷 ---> 容器内目录 直接挂载模式:宿主机目录 ---> 容器内目录 语法: 目录挂载与数据卷挂载的语法是类似的: -v [宿主机目录]:[容器内目录] -v [宿主机文件]:[容器内文件]

dockerfile详解

dockerfile是用来构建docker镜像的构建文件,是由一系列命令和参数构成的脚本,它对镜像进行了分层处理,每层有对应的命令 流程
  1. 编写dockerfile文件-- vim Dockerfile
  1. docker build
  1. docker run
dockerfile结构(四部分)
基础镜像信息(Linux发行版:centos ubantu suse debian alpine redhat) 维护者信息(docker search可查看) 镜像操作指令(tar yum make) 容器启动时执行指令(cmd[“/root/run.sh”] 、entrypoint都是系统启动时,第一个加载的程序/脚本/命令)
编写规则: 第一行必须使用FROM指令指明所基于的镜像名称;
之后使用MAINTAINER指令说明维护该镜像的用户信息;
然后是镜像操作相关指令,如RUN指令。每运行一条指令,都会给基础镜像添加新的一 层。
最后使用CMD指令指定启动容器时要运行的命令操作。

文件操作

查看docker容器内的文件 docker exec 8e09942ea2d0(端口号) ls -a /
拷贝容器文件到本地 docker cp 容器id:/要拷贝的文件目录 /目的地
拷贝本地文件到容器 docker cp /本地路径 容器id:/容器的文件目录
 
linux
  • linux
  • Fastjson 反序列化-fastjson反序列化Insecure Deserialization序列化
    目录