上一节我们使用了第三方做好的容器,直接使用阿里云的镜像拉取过来,运行了一个php的网站
接下来学习下容器的基本操作
使用官方的镜像(生产环境肯定要使用自己定制的镜像 可以使用官方的纯净的镜像加入自己的一些配置)也就是自己制作的镜像
下面首先看下官方的镜像
我们使用centos作为我们的操作系统

image.png
来到这个网站 输入centos下载个官方纯净的centos镜像

image.png
点击查看详情 可以复制镜像地址
xshell中执行如下

image.png
查看下载的镜像 docker images

image.png
我们可以基于下载的纯净的centos创建一个容器
下面看下以这种方式创建的镜像如何启动呢

image.png
docker run命令 可以把我们的镜像放在容器里运行
在我们启动容器之前 只要运行一次就可以了 第二次不需要再run了
docker run并不表示启动容器 而是操作镜像 把镜像放到docker中 产生一个容器
接下来看下docker run命令的一些参数 前节课我们学了 -d 后台运行 -p映射端口
这节课我们使用的是纯净的镜像 里面不包含apache和php等 所以这节课我们使用交互式这种操作方式来操作下这个镜像
交互式 使用参数-i 打开stdin(标准输入)用于和我们的容器进行交互 一般与-t联合使用
-t表示为容器创建虚拟终端,我们就可以登录终端了 通常与-i同时使用
这些命令可以通过在xshell中 如下命令 docker run --help

image.png
可以结合文档看具体的含义
接下来在xshell中执行如下

image.png
自动变为root 后面跟隋个 /
表示进入了刚才的容器(centos)
使用ls查看下容器里面的内容

image.png
执行pwd 输出/ 表示在根目录下 这就是官方给我们创建的操作系统(centos)

image.png
ctrl+d退出该容器
执行ctrl+d 输出如下

image.png
执行docker ps

image.png
可以发现新创建的centos容器并没有在运行
执行docker ps -a

image.png
可以发现centos容器存在 只不过按下ctrl+d关闭了容器
接下来启动下
docker start myos1(容器名)

image.png
再次执行 docker ps
可以看见当前正在运行的容器

image.png
如何再次进入容器?

image.png
通过docker attache命令 可以附加到容器终端中
执行docker attach myos1

image.png
可以发现再次进入到容器中了
按下ctrl+d再次推出容器
docker ps

image.png
可以发现容器再次被关闭了
这些命令可以在官方文档https://docs.docker.com/engine/reference/commandline/run/看见
接下来我们对上面的命令加入一些参数

image.png
xshell中打入如下命令

image.png
发现再次进入容器了
-a表示打开容器的输出流

image.png
ctrl+d退出容器 docker ps可以发现容器又停止了 这是它的一个特性
接下来学习一个新命令

image.png
接下来xshell中输入
docker start myos1
docker attach myos1

image.png
其中在启动的容器交互式命令中执行
echo bhc > test 表示在创建test文件夹 在里面写入bhc
cat test 表示把test文件中内容打印到屏幕上
接下来执行如下

image.png
又关闭了容器
接下来再次启动myos1
docker start myos1
执行
docker exec myos1 cat test
输出bhc

image.png
可以看见文件已经存在我们的容器里了(并没有被删掉)
其中exec表示执行某些命令
这时再次输入 docker ps
输出如下

image.png
可以发现容器没有被关闭
我们可以直接启动容器里的exec去运行容器里的/bin/bash 我们就可以在不关闭容器的情况下去操作这个容器
接下来操作下

image.png
发现再次进入容器

image.png
退出后再次docker ps

image.png
可以发现容器并没有被关闭
这是exec命令 让我们可以方便的操作容器而且这个容器不会被退出