1概念
网络定义:Docker 是一个开源的应用容器引擎,让开发者可以打 包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何 流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
简单定义:docker是一个运行在linux机器上的容器。
docker特点:
- 可移植性。
- 容器化-沙箱机制 安全。
镜像和容器区分?
用面向对象的思想来说,镜像是一个类,而容器是一个对象。通过镜像来创建容器来运行。而这个对象可以返回使用,除非删除掉为止。
2相关命令
- 查看本地下载的镜像。
docker images
2.搜索远程仓库需要的经常
docker search maven
3.下载远程的镜像到本地
docker fetch 镜像名
4.创建镜像 分为两种
- 种是在原有的基础上修改镜像。docker commit
- 先创建容器,并且更新容器的运行环境。然后exit。
- 将创建好的容器打包成镜像
-m message 信息
-a auth 作者
一串字符,容器的id
ubuntu:v10 仓库+版本
- 通过dockerfile文件 docker bulid
*编写Dockerfile文件
注:所有的首单词必须大写
-- FROM 表示从哪个镜像开始。
-- RUN 构建容器的时候运行一次。
-- CMD 每次容器运行时执行。
-- EXPOSE 执行的端口
*构建Dockerfile
-- -t表示 tag list,代表指定名称+版本
-- .dockerfile在当前文件夹下
docker built -t ubuntu:v11 .
5.查看某个镜像 docker images 镜像名
6.查看镜像或者容器的具体信息 docker inspect 名称
7.创建容器
-- run 表示创建并运行一个容器
-- -v挂载,将本地桌面的webapps映射到容器的/opt/local/webapps目录下。这样可以在本地webapps目录下发包,即实现了容器的发包操作。
-- -p 端口映射 本地端口8081映射到容器端口8080,-P则表示本地随机端口映射到容器端口。
-- -d 表示后台运行。
-- --name 给容器起名字,不写会默认自动生成。
docker run -v /home/root/Desktop/webapps:/opt/local/webapps -p 8081:8080 -d --name mytomcat rossbachp/apache-tomcat8
8.运行容器
--启用容器
docker start mytomcat8
--停用容器
docker stop mytomcat8
9.查看容器运行的日志
docker logs -f 容器名
10.查看容器内的内存状况
docker top 容器名
11.查看运行的容器
docker ps
12.查看运行过的所有容器
docker ps -a
14.进入到运行中的容器
-- -t terminal ,通过shell进行容器内环境的操作。
docker exec -t -i 容器名 /bin/bash
13.删除容器
- 删除指定容器 docker rm 容器id,-f表示强制删除。不强制则只能删除非运行状态的容器。
docker rm 容器id
- 删除所有的容器
-- -q表示返回容器id
docker rm `docker ps -a -q`
14.容器重命名
docker rename odlname newname
15.重启策略
当docker意外关闭(断电,被kill进程)如何自动重启
no 不自动重启容器. (默认值)
on-failure 容器发生error而退出(容器退出状态不为0)重启容器,可以指定重启的最大次数,如:on-failure:10
unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器,手动stop为0不算在内。
docker run --restart always --name test -d test
或者更新容器策略
docker update --restart on-failure:10 容器名
16.修改容器cpu和内存
docker update --cpus 1 logtestdemo
docker update --memory 1g logtestdemo