linux虚拟化之docker虚拟化---docker的基本指令

docker的一些概念

docker虚拟化与普通虚拟化的区别主要是解耦方式不同。
docker虚拟化占用资源少,使用宿主机的内核,生成容器时他会只产生一些必要的文件,更节省空间。
Namespace:docker使用Namespace来解决容器之间的冲突的。namespace意思是名称空间,隔离容器。
仔细划分可分为6种:
IPC:共享内存,消息列队
MNT:挂载点,文件系统
NET:网络栈
PID:进程编号
USER:用户,组
UTS:主机名
Cgroup:Cgroup意思是控制组,用来限制容器使用的资源。
镜像:镜像是容器运行的基石,容器是镜像运行之后的实例。就是容器是依靠镜像来产生。而容器的主要内容由使用的镜像决定的。

docker的一些基础命令

以下命令以httpd和nginx为例:
//查找镜像

docker  search  nginx
         查找   镜像名

//下载镜像

docker  pull  httpd:latest
        拉取   镜像名称(如果不加冒号后的,就是默认下载最新版本的httpd镜像)

//上传镜像

docker  push  httpd:latest
        上传  镜像名称

//加载镜像(将镜像文件加载成镜像)

docker  load  -i  httpd.tar
docker  load   <  httpd.tar

//将镜像打包镜像文件(两条指令一样的)

docker    save    -o     mynginx.tar     nginx:latest 
          保存   输出为     文件名         使用的镜像
docker    save    >     mynginx.tar     nginx:latest           

//将容器制作成镜像

docker   commit   -a   "作者" -m "说明性文字"   mynginx    mynginx:v1 
                                               容器名     保存的镜像名

//镜像改名,改版本

docker   tag     httpd:latest   myhttpd:v1
        改标签    已有镜像名     更改后的镜像名:标签(可以写版本信息)

//删除镜像

docker   rmi       nginx:latest
       删除镜像       镜像名称

//停止容器

docker  stop    容器名称

//删除容器(需要先将容器停止)

docker   rm    容器ID或者容器名称

//启动容器

docker  start  容器名称

//强制删除正在运行的容器

docker   rm   容器名称  -f

//强制删除镜像(将所有依赖这个容器的镜像都停止,就可以强制删除镜像了)

docker  rmi  -f   镜像id

//强制删除所有容器

docker  ps  -a  -q  |  xargs  docker  rm  -f

//开启所有容器

docker  ps  -a  -q  |  xargs  docker  start  -f

//关闭所有容器

docker  ps  -a  -q  |  xargs  docker  stop  -f

//基于镜像运行一个容器

docker run -itd --name test01 httpd:latest

run:运行一个容器
-i:交互模式
-t:模拟一个伪终端
-d:保持后台运行
–name:容器的名字
httpd:latest:httpd服务的镜像
-v:挂载目录
–restart=always:重启docker时,自动开启容器

//查看本地所有镜像

docker image ls 
docker images

//查看本地正在运行的容器

docker ps

//查看本地所有容器

docker   ps  -a

//创建一个容器

docker  create  -it  --name  test1  busybox:latest
         创建

//进入一个容器
第一种方法:

docker  exec  -it  test1  /bin/bash

进入时,需要添加-i,-t选项,后边添加一个shell环境。如果执行exit,就是退出容器,但是容器会保持运行状态,不会关闭。
第二种方法:

docker  attach  test1 
         进入

如果执行exit退出,容器会关闭。如果想要保持容器的开启状态,需要使用键盘ctrl+p和ctrl+q,就能在退出容器的时候,使容器仍然运行。
这两条本质上的区别:exec进入方法会生成新的进程,但是attach不会生成新的进程

发布了9 篇原创文章 · 获赞 2 · 访问量 345

猜你喜欢

转载自blog.csdn.net/Rhythm_master/article/details/103963617