docker

docker是一个容器

1,docker三大要素

        1, 镜像(images),镜像相当于一个模板,但镜像可以创建多个容器

        2,容器(container),容器相当于一个简洁版的linux系统,容器是由镜像创建的一个实例

        3,仓库(),就是存储镜像的地方

Persion psesion = new Persion();

容器对象
镜像

2,docker查询信息命令

           docker version

           docker info

           docker --help

docker 镜像命令 (镜像就是千层饼)

           docker images 查看当前本地镜像(images)

                         -a 所有 例:docker images -a

                         -q 查看当前镜像全部镜像的id

                         -digests 显示镜像的摘要信息

                         -no-trunc 显示当前镜像完整的信息

            docker search 查询 (镜像的名称)  docker -s 30 search 查询大于3的

            docker pull 下载( 镜像的名称)   docker pull tomcat:latest 最新版  docker pull tomcat:8.0 版本

            docker rmi -f 删除(镜像的名称)docker rmi tomcat:8.0

docker 容器命令

         创建并启动容器:docker run [options] image [command]  [arg]

                   oprions:

                           --name=“name”   "为容器起一个别名"

                           -d 后台运行容器,并守护该容器

                           -i 以交互模式运行容器,通常与 -t 一起使用

                           -t 为容器重新分配一个伪终端,通常与 -i 一起

                           -P 随机端口映射

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

                                           ip:hostPort:containerPort

                                           ip::containerPort

                                           hostPort:containerPort

                                           containerPort

         列出当前所有正在启动的容器:

                   docker ps 【opyions】查看正在运行的容器

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

                             -l 显示最近创建的容器

                             -n 显示最近n个创建的容器   docker ps -n 2 

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

                             --no-trunc 不截断输出

         退出容器 两种方法

                      exit 容器停止退出

                      ctrl + p + Q 容器不停止退出

         启动容器 

                     docker start 容器ID或者容器名

         重启容器 

                     docker restart 容器ID或者容器名

         停止容器 

                     docker stop 容器ID或者容器名

         强制停止容器   (区别一个快速一个慢慢的关闭)

                     docker kill 容器ID或者容器名

         删除已经停止的容器 

                     docker rm 容器ID或者容器名

                     docker rm -f $(docker ps -q)  删除所有容器

        启动守护式容器   docker run -d 容器名

        查看容器日志  docker log -f -t --tail 容器id

        查看docker进程 docker top 容器id

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

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

               docker exec it 容器id /bin/bash

               重新进入docker attach 容器Id

         从容器内拷贝文件到主机上

               docker cp 容器Id:容器内路径 目的主机路径

 

                 docker run -d centos 后台模式创建并启动一个容器(非交互式(it 交互式并有伪终端))

                 问题:通过docker ps -a 进行查看,会发现容器已经退出了

                 很重要说明:Docker容器后台运行,就必须有一个前台进程

                 容器运行的命令如果不是那些一直挂起的命令就会自动的退出

                 这个是docker的机制问题,比如你的web容器,我们一nginx为例,

       docker镜像:

               联合文件系统相当于千层饼,鸡蛋为例鸡蛋壳是镜像里面是容器层(容器层可以包括jdk,tomcat)

              docker镜像的commit操作

                        docker commit提交容器副本生成一个新的镜像

                        docker commit -m="提交信息描述" -a="作者" 容器ID 要创建目标镜像名称:【标签名版本】

       docker容器数据卷:

                   是什么:类似redis里面的持久化

                   能干嘛:容器持久化,容器之间继承+共享

                   数据卷:

                                 直接命令添加:

                                              docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名

                                              用docker inspect 容器id 查看是否挂载成功

                                              容器和宿主机之间数据在共享

                                              容器停止退出后,主机修改后数据是否同步(答:完全同步 )

                                 dockerFile添加:

                                             vim dockerfile

                                                 # volume test
                                                 FROM centos
                                                 VOLUME ["/data1","/data2"]
                                                 CMD echo "finished,----succsss1"
                                                 CMD /bin/bash
                                                 #要操作centos
                                                 #在centos根目录里面新建两个容器卷
                                                 # 打出一句话
                                                 #可以理解成这样 docker run -it -v /host1:/data1-v /host2:/data2centos /bin/bash

                                             执行命令:docker build -f  dockerfile路径  it  tag/镜像 (构建并生成新的镜像)

                                            注意: 后面有一点.

                                            通过docker inspect 容器id查看"Mounts"的Source,宿主机到容器容器到宿主机之间的数据共享

                   数据卷容器:

                         是什么:举例,活动硬盘上挂活动硬盘实现数据共享,数据传递依赖

                         容器间传递共享 (--volumes-from)

                         docker run -it  --name 当前镜像名称  -- volumes-from 已经创建的镜像名称 镜像

                 DockerFile解析(重要):

                           DockerFile是用来构建docker镜像的构建文件,由一些参数和命令构建的脚本

                            步骤:

                                     1,编写DockerFile文件

                                     1,构建Docker build

                                     1,run运行

                          保留字指令:

                                  FORM    基础镜像,当前新镜像是基于哪个镜像的

                                  MAINTAINER  镜像维护者的姓名和邮箱地址

                                  RUN   容器构建时需要运行的命令

                                  EXPOSE    当前容器对外暴露出的端口                              

                                  WORKDIR  指定在穿件容器后,在终端默认登录进来的工作目录,一个落脚点

                                  ENV    用来构建镜像过程中设置环境变量

                                  ADD   将宿主机目录下的文件拷贝到镜像中,会自动处理url和解压tar压缩包

                                  COPY  将宿主机目录下的文件拷贝到镜像中

                                  VOLUME 容器数据卷,用于数据保存和持久化工作

                                  CMD  指定一个容器启动时要运行的命令,dockerFile中可以有多个cmd命令,但只有最后一个生效,

                                  ENTRYPOINT  指定一个容器启动时要运行的命令,和cmd一样,都是在指定容器启动程序及参数

                                  ONBUILD  当构建一个被继承的的DockerFIle时运行命令,父镜像在被子继承后父镜像的onbulid被触发 

 

#删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)

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

                               

 

           

            

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值