Docker的学习(2)

前提:有镜像才能创建容器
先下载centos镜像:docker pull centos
(1)运行容器
-i:表示打开容器的输入流
-t:表示为容器重新分配一个伪输入终端
/bin/bash(不加也可以,相当于sh) sh test.sh
centos镜像运行容器(容器是一个简易版的centos系统,即一个运行时的环境,也是前面说到的集装箱)
在容器里面可以执行简单的ls命令,注意没有ll命令
执行docker run -it centos /bin/bash命令,表示进入到了容器里面了,可以执行简单的命令,
退出容器的命令,有以下两种方式:
exit表示容器停止退出
ctrl+P+Q表示容器不停止退出

docker run -it centos 的意思是,为centos这个镜像创建一个容器
-it就等于 -i和-t,这两个参数的作用是,为该docker创建一个伪终端,这样就可以进入到容器的交互模式(也就是直接进入到容器里面)
/bin/bash的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器启动后就会马上kill itself,这个/bin/bash就表示启动容器后启动bash。
Docker的学习(2)
docker run -it centos [/bin/bash] [/bin/bash]可加(默认就有),可不加
/bin/bash = sh 即保持cmd窗口打开
容器是运行在宿主机上的,容器的命令在宿主机上执行(我的宿主机是一个虚拟机,是在虚拟机上执行的)
Docker的学习(2)
(2)docker ps列出当前所有正在运行的容器(在宿主机上执行)
docker ps -a
docker ps -a -q
docker ps -l
docker ps -n 5

(3)容器的启动、重启、停止、强制停止(在宿主机上执行)
注意:restart默认是以后台方式运行
Docker的学习(2)
(4)启动守护容器:docker run -d 镜像名
docker run -d centos:表示以后台模式启动一个容器
Docker的学习(2)
docker run -d centos sleep 10:在10s之内容器就是运行的,过了10s就会退出
(5)查看容器的日志
docker logs -t -f --tail 10 3277a42ba041(表示id)
-t是加入时间戳
-f跟随最新的日志打印
–tail 数字:表示显示最后多少条

(6)宿主机和容器的映射:使用到-p和-P参数详解
-p参数:宿主机的端口映射到容器内部的端口 宿主机端口(如果是阿里云服务器,端口只能是80,如果是虚拟机,可以随意指定):容器内部的tomcat端口(默认是8080)
-P参数:随机指定端口
docker run -it -p 80:8080 registry.cn-beijing.aliyuncs.com/ethan123/my-images:3.0
可以先下载一下这个tomcat镜像:docker pull registry.cn-beijing.aliyuncs.com/ethan123/my-images:3.0
也可以使用最新的tomcat(只是访问时会404,找不到资源):docker pull tomcat