上一节我们使用了第三方做好的容器,直接使用阿里云的镜像拉取过来,运行了一个php的网站
接下来学习下容器的基本操作
使用官方的镜像(生产环境肯定要使用自己定制的镜像 可以使用官方的纯净的镜像加入自己的一些配置)也就是自己制作的镜像
下面首先看下官方的镜像
我们使用centos作为我们的操作系统
来到这个网站 输入centos下载个官方纯净的centos镜像
点击查看详情 可以复制镜像地址
xshell中执行如下
查看下载的镜像 docker images
我们可以基于下载的纯净的centos创建一个容器
下面看下以这种方式创建的镜像如何启动呢
docker run命令 可以把我们的镜像放在容器里运行
在我们启动容器之前 只要运行一次就可以了 第二次不需要再run了
docker run并不表示启动容器 而是操作镜像 把镜像放到docker中 产生一个容器
接下来看下docker run命令的一些参数 前节课我们学了 -d 后台运行 -p映射端口
这节课我们使用的是纯净的镜像 里面不包含apache和php等 所以这节课我们使用交互式这种操作方式来操作下这个镜像
交互式 使用参数-i 打开stdin(标准输入)用于和我们的容器进行交互 一般与-t联合使用
-t表示为容器创建虚拟终端,我们就可以登录终端了 通常与-i同时使用
这些命令可以通过在xshell中 如下命令 docker run --help
可以结合文档看具体的含义
接下来在xshell中执行如下
自动变为root 后面跟隋个 /
表示进入了刚才的容器(centos)
使用ls查看下容器里面的内容
执行pwd 输出/ 表示在根目录下 这就是官方给我们创建的操作系统(centos)
ctrl+d退出该容器
执行ctrl+d 输出如下
执行docker ps
可以发现新创建的centos容器并没有在运行
执行docker ps -a
可以发现centos容器存在 只不过按下ctrl+d关闭了容器
接下来启动下
docker start myos1(容器名)
再次执行 docker ps
可以看见当前正在运行的容器
如何再次进入容器?
通过docker attache命令 可以附加到容器终端中
执行docker attach myos1
可以发现再次进入到容器中了
按下ctrl+d再次推出容器
docker ps
可以发现容器再次被关闭了
这些命令可以在官方文档https://docs.docker.com/engine/reference/commandline/run/看见
接下来我们对上面的命令加入一些参数
xshell中打入如下命令
发现再次进入容器了
-a表示打开容器的输出流
ctrl+d退出容器 docker ps可以发现容器又停止了 这是它的一个特性
接下来学习一个新命令
接下来xshell中输入
docker start myos1
docker attach myos1
其中在启动的容器交互式命令中执行
echo bhc > test 表示在创建test文件夹 在里面写入bhc
cat test 表示把test文件中内容打印到屏幕上
接下来执行如下
又关闭了容器
接下来再次启动myos1
docker start myos1
执行
docker exec myos1 cat test
输出bhc
可以看见文件已经存在我们的容器里了(并没有被删掉)
其中exec表示执行某些命令
这时再次输入 docker ps
输出如下
可以发现容器没有被关闭
我们可以直接启动容器里的exec去运行容器里的/bin/bash 我们就可以在不关闭容器的情况下去操作这个容器
接下来操作下
发现再次进入容器
退出后再次docker ps
可以发现容器并没有被关闭
这是exec命令 让我们可以方便的操作容器而且这个容器不会被退出