Docker命令整理

Docker应用场景


1 web应用的自动化打包,发布
2 自动化测试和持续集成,发布
3 服务环境中部署和调整数据库或其他后台应用
4 从头编译或扩展现有OpenSHit或CLoud Foundr平台来搭建自己的PaaS环境

Docker架构

镜像(相当于一个root文件系统)
容器(镜像运行时的实体,就像OOP中的类和实例一样,容器可以创建,启动,停止,删除,暂停)
仓库(代码控制中心,保存镜像,1个Registry可以包含多个仓库,1个仓库可以包含多个标签,一个标签代表一个镜像,通常用标签标识不同的版本.通常用<仓库名>:<标签>来指定相应版本的镜像,无标签表示latest)

使用c/s架构,远程API管理和创建Docker容器

镜像,容器,客户端(运行控制主机的命令或API的工具),主机(实际执行Docker守护进程的物理或虚拟机),仓库

docker命令

守护进程查看        systemctl status docker
镜像查看    docker image Is
容器查看    docker ps
仓库配置和查看     cat /etc/docker/daemon.json

docker pull
docker  run -i -t -d image imageCommand
    -i  交互式操作
    -t 终端
    -d 后台运行
    -P:将容器内部使用的网络端口随机映射到我们使用的主机上
     -p 参数来设置不一样的端口
     --rm:容器退出时自动清理容器内部的文件系统。
     -h HOSTNAME 或者 --hostname=HOSTNAME  设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts
     --dns=IP_ADDRESS: 添加 DNS 服务器到容器的 /etc/resolv.conf 中,让容器用这个服务器来解析所有不在 /etc/hosts 中的主机名
     --dns-search=DOMAIN: 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的主机时,DNS 不仅搜索 host,还会搜索 host.example.com
    eg docker run -d -p 127.0.0.1:8080:7979/udp training/webapp python app.py

docker ps
docker start contanierid
docker stop contanierid
docker restart contanierid
docker attach contanierid
docker exec -it containerid
//linux 下使用的命令
docker export containerid > exportname.tar
cat importContainer.tar | docker import - test/importContianer:tag
docker import url/directory
//windows 下使适用的命令
docker container export containerid -o exportConaitner.tar
docker image import importContainer.tar res/conrainer:version
//
docker rm -f containerid//删除容器时必须是停止状态
docker port containerid/name
docker logs -f containerid//日志
    -f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出
docker top containerid/name //进程
docker inspect cid/cname //docker底层信息的字符串
docker search image//搜索镜像
docker rmi imagename //删除镜像
docker commit -m="descroption text" -a="auther" imageid regitry/imagename:version//提交镜像
//构建镜像
docker build -t (要创建的目标镜像名)  path(Dockerfile所在的目录)
docker tag cid imageName:tag
docker network create -d bridge test-net//创建一个docker网络
    -d 指定docker网络类型,bridge,overlay(用于 Swarm mode)
docker network ls
docker tag  r1/image1:tag1 r2/image2:tag2
//使用镜像ubuntu:15.10创建一个name为test1的容器 并连接到test-net网络
docker run -itd --name test1 --network test-net ubuntu:15.10 /bin/bash
//linux 命令
apt-get update
apt install iputils-ping
//docker命令
查看dns
docker run -it --rm ubuntu cat etc/resolv.conf
docker run -it --rm -h host_ubuntu --dns=114.114.114.114 --dns-search=test.com ubuntu//只在指定容器设置dns
docker login
docker logout
//docker 镜像构建命令
FROM nginx //基于nginx构建
RUN <命令行命令> //用于执行后面跟着的命令行,每个RUN都会在docker上新建一层
//RUN 命令行命令
//RUN 可执行文件 参数1 参数2
COPY   hom*  /mydir/
COPY [--chown=<user>:<group>] ["满足 Go 的 filepath.Match 规则的通配符表达式",...  "<容器内的路径>"]
ADD  //与COPY相似 ,但会将tar压缩文件的gzip,bzip,xz格式自动解压

CMD  //为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束了。类似RUN 但CMD是在docker run时运行  ;RUN 是在docker build运行,可被docker run的参数所覆盖 ,Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效,
ENTRYPOINT //类似CMD命令,不会被docker run的参数覆盖,但会被--entrypoint 选项覆盖 如ENV果存在多个 ENTRYPOINT 指令,仅最后一个生效
ENV //环境变量 增加到镜像中的键值对  eg NODE_VERSION=1.0.1 在容器中可用$NODE_VERSION访问
ARG //与ENV一样 但只能在Dockerfile中访问    构建命令 docker build 中可以用 --build-arg <参数名>=<值> 来覆盖。
VOLUME //容器内的挂在路径   启动容器 docker run 的时候,我们可以通过 -v 参数修改挂载点。
WORKDIR  //容器内部的工作目录
EXPOSE //镜像服务的守护端口
USER //执行后续命令的用户和用户组
*HEALTHCHECK //用于指定某个程序或者指令来监控 docker 容器服务的运行状态
*ONBUILD //延迟构建命令的执行。Dockerfile 里用 ONBUILD 指定的命令,在本次构建镜像中不执行(假设镜像为 test-build)。当有新的 Dockerfile 使用了之前构建的镜像 FROM test-build ,这时执行新镜像的 Dockerfile 构建时候,会执行 test-build 的 Dockerfile 里的 ONBUILD 指定的命令
*LABEL //用来给镜像添加一些元数据  eg LABEL org.opencontainers.image.authors="runoob"

docker-machine create

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值