docker的基础命令与用镜像快速搭建小游戏、nginx和交互式ubuntu

这篇博客介绍了Docker的基础知识,包括Docker的镜像存储驱动AUFs、Device Mapper和Btrfs。通过实例演示了如何在RHEL7.3上安装Docker,使用镜像启动小游戏和Nginx服务器,以及掌握基本的Docker命令。此外,还展示了如何在容器中添加和管理文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker 是一个开源的应用容器引擎,主要利用 linux 内核 namespace 实现沙盒隔离,用cgroup 实现资源限制。

Docker 支持三种不同的镜像层次存储的 drivers:aufs、devicemapper、btrfs ;

Aufs:

AUFS (AnotherUnionFS) 是一种 Union FS, 简单来说就是支持将不同目录挂载到同一个虚
拟 文 件 系 统 下 (unite several directories into a single virtual filesystem) 的 文 件 系 统 。 Aufsdriver 是 docker 最早支持的 driver,但是 aufs 只是 linux 内核的一个补丁集而且不太可以会被合并加入到 linux 内核中。但是由于 aufs 是唯一一个storage driver 可以实现容器间共享可执行及可共享的运行库, 所以当你跑成千上百个拥有相同程序代码或者运行库时时候,aufs是个相当不错的选择。

Device Mapper:
Device mapper 是 Linux 2.6 内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略 ( 详
见:http://www.ibm.com/developerworks/cn/linux/l-devmapper/index.html) 。Device mapper driver 会创建一个 100G 的简单文件包含你的镜像和容器。每一个容器被限制 在 10G 大 小 的 卷 内 。 ( 如 果 想 要 调 整 , 参考 :http://jpetazzo.github.io/2014/01/29/docker-device-mapper-resize/ 。 中 文 译 文 :http://zhumeng8337797.blog.163.com/blog/static/100768914201452405120107/ )你可以在启动 docker daemon 时用参数-s 指定 driver:docker -d -s devicemapper ;

Btrfs:
Btufs driver 在 docker build 可以很高效。但是跟 devicemapper 一样不支持设备间共享存
储(文档里是 does not share executable memory between devices)。
在 没 有 aufs 支 持 的 linux 发 行 版 本 上 (CentOS,opensuse 等 ) 安 装 docker 可 能 就 使 用 了devicemapper driver。

################################开始实验

系统版本为rhat7.3

server1为172.25.16.1

  • ######################1.在server1下安装docker

安装docker
安装包下载提取码ggc9

安装所有软件

yum install -y *

开启服务

systemctl start docker

在安装好docker后,linux系统会为docker容器分配一个ip
在这里插入图片描述
查看版本

docker version 

在这里插入图片描述 docker宿主机的信息

docker info

在这里插入图片描述

  • ##################2.在server1上docker上运行一个容器进程

我们可以尝试加载一个可以从浏览器打开的小游戏,见识一下docker的威力
一些封装好的docker镜像,提取码:e4yf

进入下载好的目录,这里我命名为images

cd images

导入小游戏镜像

docker load -i game2048.tar

在这里插入图片描述

在后台运行一个名为game,镜像名为game2048,端口映射在8080的docker进程

docker run -d --name game -p 8080:80 game2048

在这里插入图片描述
查看目前所有的docker进程

docker ps -a

在这里插入图片描述

如果打错了,先停止进程再删除进程

docker stop 5f576b18a058
docker rm 5f576b18a058

在真机浏览器连接
172.25.16.1:8080
在这里插入图片描述
可以开始玩了

  • #########################3.docker的基础命令
 - docker load -i ubuntu.tar 导入镜像 
 -  docker run -it --name vm1 ubuntu 创建容器(以ubuntu镜像为模板) 
 -  docker ps 查看容器状态 
 -  docker ps -a 查看容器状态(包括不活跃的容器) 
 -  docker attach vm1 连接容器 
 -  docker top vm1 查看容器进程 
 -  docker logs vm1 查看容器指令输出 -f 参数可以实时查看 
 -  docker inspect vm1 查看容器详情 
 -  docker stats vm1 查看容器资源使用率 
 -  docker diff vm1 查看容器修改 
 -  docker stop vm1 停止容器 
 -  docker start vm1 启动容器 
 -  docker kill vm1 强制干掉容器 
 -  docker restart vm1 重启容器 
 -  docker pause/unpause vm1 暂停/恢复容器 
 -  docker rm vm1 删除容器
 -  docker ps -a           查看所有的容器
 - docker ps 查看所有的正在运行的容器
 - docker images   查看已经导入的镜像
 -  docker pull nginx   从公有库下载nginx
 - docker run -d --name game -p 8080:80 game2048  运行指定的镜像 		
 			-d  后台运行      
 			-p 8800:80 是指定对外暴露的端口  容器内部用80 对应外部的8800  代理一样
    	--name指定容器的名字  最后的nginx 代码要运行的镜像名字  
    	有tag的加上tag 如 game2048:xxx     
    	默认为latest 然后访问宿主主机地址+8800端口
 - docker run -it --name vm1 ubuntu     		 
   			-i:交互 	
   			-t:终端
 - docker run -it --name  vm1 nginx bash  加一个bash可以调出shell
 - docker container exec -it vm1 bash   后台开启时调动shell的方法
 - docker export vm1 > vm1.tar  导出镜像
 - docker import vm1.tar image  导入镜像
  • ####################4.快速搭建nginx镜像

导入镜像

docker load -i nginx.tar

在这里插入图片描述
在后台运行一个名为vm1的nginx镜像,并且映射到8081端口

docker run -d --name vm1 -p 8081:80 nginx

真机浏览器连接172.25.16.1:8081
在这里插入图片描述
server1里写发布页

mkdir /docker
cd /docker/
vim index.html

在这里插入图片描述
复制到容器里

docker cp index.html vm1:/usr/share/nginx/html

真机浏览器连接172.25.16.1:8081
在这里插入图片描述
我们也可以在创建进程的时候就添加这个发布页文件
先删除刚才的进程

docker stop f331d35476cd
docker rm f331d35476cd

在这里插入图片描述
修改一下发布页,把他和上面的区别开

vim index.html

在这里插入图片描述
docker命令里加上-v可以在创建的时候就添加某个文件

docker run -d --name vm1 -v /docker/:/usr/share/nginx/html -p 8081:80 nginx

真机浏览器连接172.25.16.1:8081
在这里插入图片描述

  • #####################5.docker创建一个交互式容器
    导入镜像
docker load -i ubuntu.tar

在这里插入图片描述
创建一个vm2的镜像,-it表示打开交互式docker界面(ubuntu自带,rhel镜像需要在it后面再加bash)

docker run -it --name vm2 ubuntu

在这里插入图片描述
如何退出

ctrl+pq     不停止容器,后台运行
ctrl+d      直接结束容器,释放内存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值