issues
search
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
docker 命令汇总
compose 模板说明
Compose 模板文件
dockerfile
docker run
docker story