Docker基础

docker 命令详解官方地址
https://docs.docker.com/engine/reference/
基本命令
docker version      ##查看docker版本信息
docker info         ##显示docker的系统信息,包括镜像和容器数量
docker --help       ##docker 帮助命令##
docker inspect -f "{{ .RestartCount }}"   容器    ##查看容器启动次数命令
docker inspect -f "{{ .State.StartedAt }}"  容器  ##查看容器最后一次启动时间
docker inspect -f "{{ .Config.Env }}" 容器        ##查看容器环境配置
镜像命令
docker images                                      ##查看所有本机上的镜像
docker search                                      ##搜索
docker search XXX --filter=stars=3000              ##搜索星大于3000的镜像
docker pull XXX:TAG                                ##获取镜像
docker rmi XXX                                     ##删除XXX镜像,可以通过ID或者名称删除
docker rmi -f $(docker images -aq)                 ##删除所有镜像
容器命令
docker run --help
docker run [可选参数] images
#参数说明
--name =“Name” 容器名字 XXX ,用来区分容器
-d                后台方式运行
-it               使用交互方式运行,进入容器查看内容
-p                指定容器的端口 -p 8080:8080
           -p ip:主机端口:容器端口 
           -p 主机端口:容器端口 (常用)
           -p  容器端口
-p                             随机指定端口
docker stats      ##查看cpu的状态
列出所有运行的容器
docker ps 
                列出当前正在运行的容器
-a              ##列出所有运行过的容器(包括曾经运行过的)
-n =?          ##显示最近创建的容器
-q              ##只显示容器的编号
退出容器
exit              ##直接容器停止并退出
ctrl + p + Q      ##容器不停止退出
删除容器
docker rm   容器id                    ##删除指定容器 
docker rm -f $(docker ps -aq)        ##删除所有容器
docker ps  -a -q | xargs docker rm   ##删除所有容器
启动和停止容器的操作
docker start 容器id/name      #启动指定容器
docker stop 容器id/name       #停止指定的容器
docker restart 容器id/name    #重启指定容器
docker kill 容器id/name       #强制停止当前容器
常用的其他命令
  • 后台启动
docker run
-d         后台启动容器(常见的坑,docker 容器使用后台运行,就必须要一个前台进程,docker发现没有应用,就会自动停止)
  • 查看日志命令
docker logs --help
docker logs -f 容器id
docker logs -tf --tail 10 容器id  ##显示最新10条命令
  • 查看容器中的进程信息ps
  docker top 容器id
  • 查看镜像原数据
docker inspect --help
docker inspect 容器id/name
  • 进入当前正在运行的容器
#我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
#命令
docker exec -it 容器id/name /bin/bash
docker exec -it 容器id/name /bin/sh
#exec 进入容器后开启一个新的终端,可以在里面操作(常用)

docker attach  容器id/name  
#进入容器正在执行的终端,不会启动新的进程
  • 从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的主机的路径
docker commit
  • docker commit
docker commit 提交容器成为一个新的副本
##命令和git原理类似
docker commit -m ="提交的描述信息 " -a="作者" 容器id/name 目标镜像名:[TAG]

docker容器数据卷
##方式一:直接使用命令挂载 -v
docker run -it -v  主机目录:容器内目录
启动成功之后可以通过 docker inspect 容器id/name 查挂载是否成功

##具名和匿名挂载
-v 容器内路径   ##匿名挂载
-v 卷名:容器内路径    #具名挂载
-v  /宿主机路径:容器内路径 #指定路径挂载
docker File
docker build --help
docker build -f 目录地址 -t 文件名 .     #注意后边的点不要漏掉了
#注意脚本指令都是大写的
docker run -it --name docker02 --vlumes-from docker01 XXX/centos:latest(卷共享)
##容器卷的生命周期是一直持续到没有人使用为止,但是一旦持久化到了本地,这个时候,本地的数据 是不会删除的
##指令
FROM                     #格式:FROM image或FROM image:tag 【Dockerfile中第一条指令必须是FROM指令,且在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令】

MAINTAINER               #格式为MAINTAINER user_name user_email 【指定维护者信息RUN】

RUN                      #格式为RUN command或 RUN["EXECUTABLE","PARAM1","PARAM2".....]【前者在shell终端中运行命令,/bin/sh -c command,例如:/bin/sh -c "echo hello";后者使用exec执行,指定其他运行终端使用RUN["/bin/bash","-c","echo hello"] ,每条RUN指令将当前的镜像基础上执行指令,并提交为新的镜像,命令较长的时候可以使用\来换行 】
                   
ADD                      #格式:ADD src dest 【该命令将复制指定本地目录中的文件到容器中的dest中,src可以是是一个绝对路径,也可以是一个URL或一个tar文件,tar文件会自动解压为目录】

WORKDIR                  #格式: WORKDIR /path 【为后续的RUN CMD ENTRYPOINT指定配置工作目录,可以使用多个WORKDIR指令,若后续指令用的是相对路径,则会基于之前的命令指定路径】

VOLUME                   #格式: VOLUME ["/data"] 【作用是创建在本地主机或其他容器可以挂载的数据卷,用来存放数据】

EXPOSE                   #格式: EXPOSE port [port2,port3,...] 【例如EXPOSE 80这条指令告诉Docker服务器暴露80端口,供容器外部连接使用。在启动容器的使用使用-P,Docker会自动分配一个端口和转发指定的端口,使用-p可以具体指定使用哪个本地的端口来映射对外开放的端口】

CMD                      #支持三种格式:
                                  # CMD ["executable","param1","param2"],使exec执行,这是推荐的方。
                                  # CMD command param1 param2 在/bin/sh中执行
                                  # CMD ["param1","param2"] 提供给ENTERYPOINT的默认参数
                         #CMD用于指定容器启动时执行的命令,每个Dockerfile只能有一个CMD命令,多个CMD命令只执行最后一个。若容器启动时指定了运行的命令,则会覆盖掉CMD中指定的命令

ENTRYPOINT               #格式有两种:
                                 #ENTRYPOINT ["executable","param1","param2"]
                                 #ENTRYPOINT command param1,param2 会在shell中执行。
                         #用于配置容器启动后执行的命令,这些命令不能被docker run提供的参数覆盖。和CMD一样,每个Dockerfile中只能有一个ENTRYPOINT,当有多个时最后一个生效(我们运行容器时追加的命令,是直接拼接在ENTRYPOINT 命令后面的)
USER                     #格式:USER username 【指定容器运行时的用户名或UID,后续的RUN也会使用指定的用户。要临时使用管理员权限可以使用sudo。在USER命令之前可以使用RUN命令创建需要的用户。例如:RUN groupadd -r docker && useradd -r -g docker docker】
ONBUILD                  #格式:ONBUILD [INSTRUCTION] 【该配置指定当所创建的镜像作为其他新建镜像的基础镜像时所执行的指令】
COPY                     #格式:COPY src desc 【复制本地主机src目录或文件到容器的desc目录,desc不存在时会自动创建】
ENV                      #格式:EVN key value 【用于指定环境变量,这些环境变量,后续可以被RUN指令使用,容器运行起来之后,也可以在容器中获取这些环境变量】

docker build             
#创建好Dockerfile之后,通过docker build命令来创建镜像,该命令首先会上传Dockerfile文件给Docker服务器端,服务器端将逐行执行Dockerfile中定义的指令。
#通常建议放置Dockerfile的目录为空目录。另外可以在目录下创建.dockerignore文件,让Docker忽略路径下的文件和目录,这一点与Git中的配置很相似。

#通过 -t 指定镜像的标签信息,例如:docker build -t regenzm/first_image . 【"."指定的是Dockerfile所在的路径】

docker 网络
查看所有的docker网络
docker network ls

##网络模式
bridge         #桥接docker(默认)
none           #不配置网络
host           #和宿主机共享网络
container      #容器网络联通(用的少,局限很大)
自定义docker网络
好处:不同的集群使用不同的网络,保证集群是安全和健康的
docker network --help
docker network create --help


docker网络联通
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容

  • 本文主要转载自:docker常用命令详解本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节...
    YDDMAX_Y阅读 192评论 1 0
  • 本文介绍Docker基本的操作命令,包括对镜像容器的获取,查看,保存,启停等操作。 1. 检查docker的版本:...
    木木与呆呆阅读 419评论 0 6
  • attach: 将标准输入(stdin)与标准输出(stdout)连接到正在运行的容器 build: ...
    信仰与初衷阅读 822评论 1 1
  • 镜和容器的对应关系:镜——类容器——对象 一、镜像操作 1、查看有哪些镜像下载下来的 2、搜索某一个镜像 3、下载...
    小月半会飞阅读 1,154评论 0 0
  • docker pull命令 如果docker pull命令没有携带地址,会从docker hub的网站上下载。 d...
    ShootHzj阅读 1,185评论 0 1