chiyan-lin / Blog

welcome gaidy Blog
6 stars 3 forks source link

常用docker指令汇集 #12

Open chiyan-lin opened 4 years ago

chiyan-lin commented 4 years ago

docker 命令汇总

action commander
列出所有 docker docker image ls
列出运行中的 docker docker ps
启动dokcer并进入docker docker run --name "mydocker" -it dockerimage ./bin/bash
清除所有 container docker rm $(docker container ls -aq)
构建docker image docker build -t [ 镜像名 ]:[ tag ] -f [ DockerFile 名 ] [ DockerFile 所在目录 ]
显示容器运行资源情况 docker stats
关闭容器 docker stop anyesu-container
强制关闭容器 docker kill anyesu-container
重启容器 docker restart anyesu-container
查看容器中正在运行的进程 docker top [ 容器名 or 容器 id ]
将容器保存为镜像 docker commit [ 容器名 or 容器 id ] [ 镜像名 ]:[ tag ]
compose 启停 docker-compose up --build -d [后台执行] [可以指定 yml 文件内的 service,不指定就全部启动]

compose 模板说明

Compose 模板文件

dockerfile

选项 用法 说明
--------------------------------------
FROM FROM : 指定基础镜像。
MAINTAINER MAINTAINER 创建者信息。
RUN RUN 执行容器操作,主要用来安装软件。
CMD CMD ["executable","param1","param2"] 或 CMD command param1 param2 或 CMD ["param1","param2"] ( 作为ENTRYPOINT 的参数 ) 镜像启动时的操作,会被容器的启动命令覆盖。指定多次则最后一条生效。
ENTRYPOINT 同 CMD,与 CMD的差别 主要在于其在容器启动时不会被覆盖 启动容器执行的命令,CMD 可为其提供参数。指定多次则最后一条生效,如果之后的 CMD 是完整指令则会被其覆盖。
USER USER daemon 指定容器的用户,默认为 root 。
EXPOSE EXPOSE ... 暴露容器端口。
ENV ENV 设置容器内环境变量。
COPY COPY 从宿主机拷贝内容到容器内,/ 结尾表示目录,差别自己体会吧。
ADD ADD 高级版的 COPY,如果 为 url则表示下载文件,如果 为可识别的压缩文件,拷贝后会进行解压。建议最好还是用 COPY 。
VOLUME VOLUME [] 指定挂载点,对应目录会映射到宿主机的目录上,宿主机对应的目录是自动生成的无法指定
WORKDIR WORKDIR 切换容器内目录,相当于 cd 。
ONBUILD - 在子镜像中执行,比如在 A镜像 的Dockerfile 中添加 ONBUILD 指令,该指令在构建构成不会执行,当 B镜像 以 A镜像 为基础镜像时,构建 B镜像 的过程中就会执行该指令。

docker run

选项 说明
-d 后台运行容器, 并返回容器ID;不指定时, 启动后开始打印日志, Ctrl + C 退出命令同时会关闭容器
-i 以交互模式运行容器, 通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端, 通常与 -i 同时使用
--name "anyesu-container" 为容器指定一个别名, 不指定时随机生成
-h docker-anyesu 设置容器的主机名, 默认随机生成
--dns 8.8.8.8 指定容器使用的 DNS 服务器, 默认和宿主机一致
-e docker_host=172.17.0.1 设置环境变量
--cpuset="0-2" or --cpuset="0,1,2" 绑定容器到指定 CPU 运行
-m 100M 设置容器使用内存最大值
--net bridge 指定容器的网络连接类型, 支持 bridge / host / none / container 四种类型
--ip 172.18.0.13 为容器分配固定 ip ( 需要使用自定义网络 )
--expose 8081 --expose 8082 开放一个端口或一组端口, 会覆盖镜像设置中开放的端口
-p [宿主机端口]:[容器内端口] 宿主机到容器的端口映射, 可指定宿主机的要监听的 ip, 默认为 0.0.0.0
-P 注意是大写的, 宿主机随机指定一组可用的端口映射容器 expose 的所有端口
-v [宿主机目录路径]:[容器内目录路径] 挂载宿主机的指定目录 ( 或文件 ) 到容器内的指定目录 ( 或文件 )
--add-host [主机名]:[ip] 为容器 hosts 文件追加 host , 默认会在 hosts 文件最后追加内容:[主机名]:[容器ip]
--volumes-from [其他容器名] 将其他容器的数据卷添加到此容器
--link [其他容器名]:[在该容器中的别名] 添加链接到另一个容器, 在本容器 hosts 文件中加入关联容器的记录, 效果类似于 --add-host

docker story