docker中的操作

镜像相关操作

  • 拉取镜像:docker pull nginx

  • 查看拉取到的镜像:docker images

  • docker save -o [保存的目标文件名称] [镜像名称] 导出镜像到磁盘 例:docker save -o nginx.tar nginx:latest

  • 删除本地镜像 docker rmi nginx:latest

  • 加载本地文件到镜像: docker load -i nginx.tar

容器相关操作

容器保护的三个状态:

  • 运行:进程正常运行
  • 暂停:进程暂停,CPU不再运行,并不释放内存
  • 停止:进程终止,回收进程占用的内存,CPU等资源

命令:

  • docker run:创建并运行一个容器,处于运行状态
  • docker pause:让一个运行的容器暂停
  • docker unpause:让一个容器从暂停状态恢复运行
  • docker stop:停止一个运行的容器
  • docker start:让一个停止的容器再次运行
  • docker rm:删除一个容器
  • docker logs: 查看容器日志的命令,添加-f参数可以持续查看日志
  • docker ps: 查看容器的状态
  • docker ps -a 查看所有容器,包括已经停止的

案例-创建并运行nginx容器的命令:

创建并运行nginx容器的命令:docker run --name containerName -p 80:80 -d nginx
命令解读:

  • docker run :创建并运行一个容器
  • --name : 给容器起一个名字,比如叫做mn
  • -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
  • -d:后台运行容器
  • nginx:镜像名称,例如nginx
    这里的-p参数,是将容器端口映射到宿主机端口。
    默认情况下,容器是隔离环境,我们直接访问宿主机的80端口,肯定访问不到容器中的nginx。
    现在,将容器的80与宿主机的80关联起来,当我们访问宿主机的80端口时,就会被映射到容器的80,这样就能访问到nginx了:

案例-进入容器,修改文件

步骤
1)进入容器。进入我们刚刚创建的nginx容器的命令为:docker exec -it mn bash
命令解读:

  • docker exec :进入容器内部,执行一个命令

  • -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互

  • mn :要进入的容器的名称

  • bash:进入容器后执行的命令,bash是一个linux终端交互命令

数据卷

数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。

数据卷操作的基本语法如下:

docker volume [COMMAND]

docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:

  • create 创建一个volume
  • inspect 显示一个或多个volume的信息
  • ls 列出所有的volume
  • prune 删除未使用的volume
  • rm 删除一个或多个指定的volume

案例:创建和查看数据卷

创建数据卷:docker volume create html
查看所有数据卷:docker volume ls
查看数据卷详细数据卷:docker volume inspect html
Mountpoint后边的内容便为所关联的宿主主机的目录

总结:
数据卷的作用:

  • 将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全

数据卷操作:

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

案例:挂载数据卷

docker run \
--name mn \
-v html:/root/html \
-p 8080:80
nginx \

这里的-v就是挂载数据卷的命令:

  • -v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中

自定义镜像

镜像是分层结构,每一层称为一个Layer

  • BaseImage层:包含基本的系统函数库、环境变量、文件系统
  • Entrypoint:入口,是镜像中国你应用启动的命令
  • 其他:在BaseImage基础上添加依赖、安扎u那个程序、完成整个应用的安装和配置

什么是Dockerfile:
Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer
image

posted @   生活的样子就该是那样  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示