docker

常用指令

创建容器:docker run -i -t -d -p 32181:32181 –name zookeeper zookeeper /bin/bash

退出容器:exit,会停止容器运行

启动容器:docker start

重启容器:docker restart

停止容器:docker stop

进入后台运行容器:docker attach 退出容器停止

进入后台运行容器:docker exec -it 243c32535da7 /bin/bash 退出容器不停止 停止

导出容器:docker export > **.tar

删除容器:docker rm -f 1e560fca3906

查看镜像:docker images

下载镜像:docker pull

搜索镜像:docker search

删除镜像:docker rmi 查询所有容器:docker ps -a

查看容器日志:docker logs

镜像生成

FROM:基础镜像 RUN:为启动的容器指定默认要运行的程序 命令行命令 shell,exec格式,每执行一次构建一层,docker build时运行 CMD:为启动的容器指定默认要运行的程序 docker run时运行

docker build -t nginx:test .

COPY:从上下文目录复制文件或目录到容器指定路径 COPY [–chown=:] <源路径1>... <目标路径> 例:COPY hom?.txt /mydir/

ENV:设置环境变量 例 ENV NODE_VERSION 7.2.0

ARG:ARG 设置的环境变量仅对 Dockerfile 内有效,也就是说只有 docker build 的过程中有效 例 ARG <参数名>[=<默认值>]

VOLUME:定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷 例 VOLUME [“<路径1>", "<路径2>"...]

EXPOSE:声明端口 例 EXPOSE <端口1> [<端口2>...]

WORKDIR:指定工作目录 例 WORKDIR <工作目录路径>

USER: 指定执行后续命令的用户和用户组 USER <用户名>[:<用户组>]

HEALTHCHECK:指定某个程序或者指令来监控 docker 容器服务的运行状态 HEALTHCHECK [选项] CMD <命令>:设置检查容器健康状况的命令

ONBUILD:延迟构建命令的执行 例 :ONBUILD <其它指令>

docker容器间通信

IP 通信

容器创建时通过 –network 指定相应的网络 或者通过 docker network connect 将现有容器加入到指定网络

Docker DNS Server

启动时用 –name 为容器命名 只能在 user-defined 网络中使用

joined 容器

使两个或多个容器共享一个网络栈,共享网卡和配置信息,joined 容器之间可以通过 127.0.0.1 直接通信