Docker入门1

207 阅读4分钟

Docker

1.Docker镜像(Image)就是一个只读模板。镜像可以用来创建Docker容器,一个镜像可以创建很多容器
容器就是一个对象,镜像就是一个类

Student s1 = new Student() Student s2=new Student() Student s3=new Student()

就是相当于3个容器,Student 就是一个模板,镜像。

仓库就是存放镜像地方
官方总结:

Dokcer 利用容器(Container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。

它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

可以把容器看做是一个简易版的Linux环境。

为什么要用Docker

1.更轻量:基于容器的虚拟化,仅包含业务运行所需的runtime环境,CentOS/Ubuntu基础镜像仅170M;宿主机可部署100-1000个容器
2.更高效:无操作系统虚拟化开销
3.更敏捷、更灵活
容器是一个简易版的Linux虚拟机环境,去掉了一些硬件。

有镜像才能创建容器,这是根本前提

1.新建并启动容器:
docker run [options] image[command][arg...]
options说明(常用):有些是一个减号,有些是两个减号

–name= "容器新名字"为容器指定一个名称

-d:后台运行容器,并返回容器Id,也即启动守护式容器

-i :以交互模式运行容器,通常与 -t 同时使用

-t :为容器重新分配一个伪输入终端,通常与 -i同时使用;

-P : 随机端口映射

-p : 指定端口映射,有以下四种格式

​ ip:hostPort:containerPort

​ ip::containerPort

​ hostPort:containerPort

​ containerPort

1561601187780

docker run -it  imageid  交互式启动dockers镜像生成容器实例
docker ps   列出所有正在运行的容器 查看装了哪些集装箱 也就是容器

1561604059455

docker ps [options]

options说明常用:

-a :列出当前所有正在运行的容器+历史运行过的

-l: 显示最近创建的容器

-n: 显示最近n个创建的容器

docker ps - n 3 最近3个

-q: 静默模式,只显示容器编号

–no-trunc:不截断输出

退出容器 两种方式

1.exit 容器停止退出

2.ctrl +P+Q 容器不停止退出

进入正在运行的容器并以命令行交互

docker exec -it 容器id ls -l /tmp 可以在外面看结果,不用进去,而attach得进入里面

docker exec -it 容器ID bashShell
重新进入docker attach 容器ID
上述两个区别:attach直接进入容器启动命令的终端,不会启动新的进程
exec是在容器中打开新的终端,并且可以启动新的进程

启动容器

docker start 容器实例id或者名称

docker restart

停止容器 docker stop 强制停止 docker kill

删除已经停止的容器

docker rm 容器Id 删除已经关闭的

docker rm f 容器id 强制删除

docker rmi 删除镜像

一次性删除多个容器

docker rm -f $(docker ps -a -q)

docker ps -a -q|xargs docker rm

以后台模式启动一个容器

启动守护式容器

docker run -d centos
问题:然后 docker ps -a 进行查看,会发现容器已经退出,很重要得要说明一点:Docker容器后台运行,就必须有一个前台进程。容器运行得命令如果不是那些一直挂起得命令(比如运行top,tail),就是会自动退出得。
这个dockers的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如 service nginx start 但是,这样做nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀,因为他觉得他没事可做了,所以最佳的解决方案是,将你要运行的程序以前台进程的形式进行

查看容器日志

docker logs -f -t --tail 容器ID

-t 是加入时间戳   -f 跟随最新的日志打印    --tail数字显示最后多少条

docker logs -f -t --tail 3 最后三条

查看容器内运行的进程 docker top 容器ID

查看容器内部细节 docker inspect 容器ID

从容器内拷贝文件到主机上 docker cp 容器id:路径 路径

1561618653984

镜像:镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件

docker run -it -p 8888:8080 tomcat 启动tomcat

-p 是对外暴露端口

p主机端口号:docker容器端口号

-P是随机分配 i:交互 t:终端