Docker

基本概念

镜像

docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,通过这个镜像可以创建多个容器

容器

docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的

仓库

就是存放镜像的地方,仓库分为共有仓库和私有仓库

底层原理

Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问。DockerServer接收到DockerClient的指令,就会执行这个命令

Docker命令

docker version :查看docker版本信息

docker info :查看docker信息

docker 命令 --help :查看帮助文档

docker stats :查看cpu的状态

docker volume ls :查看所有的数据卷

docker volume inspect 卷名称 :查看卷的信息

镜像命令

docker images (查看所有本地主机上的镜像)

-a :列出所有镜像

-q :只显示镜像的id

docker search 镜像名(搜索镜像)

docker pull 镜像名:版本号(下载镜像)

docker push 镜像名:[版本号](上传镜像)

docker login [镜像仓库网址](登录)

-u :用户名

-p :密码

docker tag [镜像id] 镜像名:版本号(为镜像添加一个版本)

docker rmi 镜像id(删除镜像)

-f :根据镜像id删除

docker rmi -f $(docker images -aq) :删除所有镜像

docker build (依据Dockerfile构建镜像)

-f :dockerfile文件的路径,文件名为Dockerfile时可以不用指定

-t :构建的镜像名及版本号(镜像名:[tag])

docker build -f dockerfile文件的路径 -t 镜像名:版本号 .

docker history 镜像id(查看镜像变更历史)

docker save 镜像名:版本号(镜像保存为压缩包)

-o :备份文件输出到本地的路径

docker load(根据备份文件恢复镜像)

-i :备份文件的位置

容器命令

docker run 镜像名(创建容器)

docker run [可选参数] image

--name="Name" :容器名字,用来区分容器

-d :后台方式运行

        常见问题:容器使用后台运行,就必须有一个前台进程,docker发现没有前台应用,就会自动停止

-it :使用交互方式运行,进入容器查看内容

-p :指定容器的端口

        -p ip:主机端口:容器端口

        -p 主机端口:容器端口

        -p 容器端口

        容器端口

-P :随机指定端口

-v :数据卷挂载

        -v 主机目录:容器内目录        (指定路径挂载,路径为绝对路径,/开头)

        -v 容器内目录        (匿名挂载)

        -v 卷名称:容器内目录        (具名挂载)

                容器内目录:ro :只读,容器只有读权限,没有写权限

                容器内目录:rw :读写,容器既有读权限又有写权限

--volumes-from :容器间数据卷共享

        --volumes-from 容器名

--rm :用完后将容器删除,一般用来测试

docker run -it 镜像名 /bin/bash :启动并进入容器

exit (停止容器并退出容器)

Ctrl + P + Q :容器不停止退出

docker ps (列出容器)

无参数 :列出当前正在运行的容器

-a :列出所有的容器(包含当前运行的和历史运行过的)

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

-q :只显示容器的编号

docker rm 容器id(删除容器)

无参数 :删除指定的容器(不能删除正在运行的容器)

-f :强制删除指定的容器

docker rm -f $(docker ps -aq) :强制删除所有的容器

docker ps -a -q | xargs docker rm :删除所有的容器

docker start 容器id(启动容器)

doeker restart 容器id(重启容器)

docker stop 容器id(停止当前正在运行的容器)

docker kill 容器id(强制停止当前容器)

docker exec -it 容器id bashShell (进入容器开启一个新的终端)

docker attach 容器id (进入容器,进入正在执行的终端)

docker logs 容器id(查看日志)

-tf :显示日志(f为加时间戳)

--tail number :要显示日志条数

docker top 容器id(查看容器中的进程信息)

docker inspect 容器id(查看镜像的元数据)

docker cp 容器id:容器内路径 目的主机路径 (拷贝文件到主机)

docker commit 提交容器成为一个新的副本

-m :提交的描述信息

-a :作者

docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

数据卷

容器的持久化和同步操作,容器间的数据共享

当容器停止,此时修改宿主机上的文件,容器启动后数据依旧是同步的

当彻底删除容器时,挂载到本地的数据卷依旧存在

容器间数据卷共享时,共享文件是拷贝的概念,不属于任何容器,数据卷的生命周期一直持续到没有容器使用为止

Dockerfile

自定义构建镜像

FROM :基础镜像,一切从这里开始构建

MAINTAINER :镜像的作者,姓名+邮箱

RUN :镜像构建时需要运行的命令

ADD :往镜像中添加内容(压缩包会自动解压)

COPY :拷贝文件到镜像中

WORKDIR :镜像的工作目录

VOLUME :挂载的目录

EXPOST :端口配置

CMD :指定这个容器启动的时候要运行的命令,只有最后一个会生效,命令行追加的命令会替代改命令

ENTRYPOINT :指定这个容器启动的时候要运行的命令,命令行追加的命令直接拼接在ENTRYPOINT命令的后面

ONBUILD :当构建一个被继承Dockerfile,这时就运行ONBUILD指令(触发指令)

ENV :设置环境变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值