Docker
Contents
Docker
安装Docker(Ubuntu)
|
|
- 配置加速地址
|
|
查看docker信息
|
|
查找镜像
- docker hub
|
|
-
命令
docker search [OPTIONS] TERM
-
--automated=false
只选出自动化构建出的docker镜像 -
no-trunc=false
-
-s --stars=0
限制star的最小星数
列出镜像
-
命令
docker images [OPTIONS] [REPOSITORY]
-
参数
-a
显示所有镜像(默认并不显示中间层的镜像)
-
-f
过滤时的过滤条件 -
--no-trunc=false
不使用截断的形式显示镜像id -
-q
只显示镜像的唯一id
查看镜像详细信息
- 命令
docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE]
删除镜像
-
命令
docker rmi [OPTIONS] IMAGE [IMAGE...]
-
选项
-f
强制删除
拉取镜像
-
命令
docker pull [OPTIONS] NAME [:TAG]
-
参数
-d
–all-tags=false 下载所有标签
推送镜像
- 命令
|
|
构建镜像
-
命令
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
通过容器构建
-
-a --author=
作者 -
-m --message
提交信息 -
-p --pause=true
提交时暂停容器(默认是暂停,改为false可禁止此行为) -
docker build [OPTIONS] PATH | URL| -
通过dockerfile构建 -
--force-rm=false
-
--no-cache=false
-
pull=false
-
-q --quiet=false
-
--rm=true
-
-t --tag=""
-
示例
|
|
启动容器
-
命令
docker run IMAGE [COMMAND][ARG...]
-
参数
-i
启动交互式环境
-
-t
启动一个伪TTY终端 -
-d
启动一个守护式容器 -
--name=自定义名
给容器起一个自定义名字 -
示例
- 直接启动并执行命令(执行完成后退出)
|
|
- 启动交互式环境
|
|
- 示例
|
|
退出容器
-
命令
exit
-
ctrl + p + q
继续在后台运行
启动停止的容器
-
命令
docker start [-i] 容器名
-
示例
docker start -i container01
重启容器
- 命令
docker restart 容器名
查看容器
-
命令
docker ps [-a][-l]
-
参数
-a
查看所有容器
-
-l
-
a
只返回容器id
删除停止的容器
-
命令
docker rm 容器名
-
docker rm -f $(docker ps -qa)
删除所有容器
守护式容器
-
命令
- 运行交互式容器时以
Ctrl + P + Q
退出,容器便会转为守护状态,在后台运行
- 运行交互式容器时以
-
docker run -d 镜像名 [COMMAND] [ARG...]
-
重新进入守护式容器
docker attach 容器名/id
查看容器日志
-
命令
docker logs [-f] [-t] [-tail] 容器名
- 参数
-
-f
follow 滚动 -
-t
显示时间戳 -
--tail
= all
查看容器内进程
- 命令
docker top 容器名
在运行的容器中启动新的进程
-
命令
docker exec [-d][-i][-t] 容器名 [COMMAND][ARG...]
-
示例
docker exec -i -t container01 /bin/bash
启动一个新的bash
-
docker exec -it nginx001 /bin/bash
进入到nginx001容器 -
docker exec -t container001 ls -l /tmp
停止容器
停止守护式容器
-
命令
docker stop 容器名
发送信号给容器,等待停止
-
docker kill 容器名
强制关闭
拷贝文件
|
|
容器的端口映射
-
命令
docker run [-p][-P]
在运行容器时指定端口
-
-P
为容器暴露的所有端口进行映射
|
|
-p
指定映射容器的哪些端口
|
|
docker port 容器名
查看容器的端口映射情况
容器数据卷
-
命令
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
-
docker run -it -v /myDataVolumn:/容器内目录 镜像名
-
docker run -it -v /宿主机绝对路径目录:容器内目录:ro 镜像名
容器内只读
Dockerfile
ENV
用来在构建镜像过程中设置环境变量- 示例
|
|
-
FROM
基础镜像,当前镜像是基于哪个镜像的 -
RUN 容器构建时需要运行的命令
-
WORKDIR
指定在创建容器后,终端默认登录进来的工作目录,一个落脚点- 示例
|
|
-
EXPOSE
当前容器对外暴露的端口 -
CMD
指定一个容器启动时要运行的命令- dockerfile中可以有多个CMD命令,但只有最后一个会生效,CMD会被docker run之后的参数替换
-
ENTRYPOINT
指定一个容器启动时要运行的命令- ENTRYPOINT 的目的和CMD一样,都是在指定容器启动程序及参数, docker run 之后的参数会被当作参数传给ENTRYPOINT,之后形成新的命令组合
-
COPY
类似ADD,拷贝文件和目录到镜像中,将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置- 示例
|
|
-
VOLUMN
容器数据卷,用于数据保存和持久化工作 -
MAINTAINER
镜像维护者的姓名和邮箱地址 -
ADD
将宿主机下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包- 示例
|
|
-
LABEL
-
ONBUILD
基础知识
- 每条保留字指令都必须为大写字母且后面要跟至少一个参数
- 指令按照从上到下,顺序执行
#
表示注释- 每条指令都会创建一个新的镜像层,并对镜像进行提交
docker build
|
|
示例
|
|
一些问题
什么是容器
- 容器包括应用程序及所有的依赖项,作为操作系统的独立进程运行。
ONBUILD命令
当镜像用作另一个镜像构建的基础时,ONBUILD指令向镜像添加将在稍后执行的触发指令。
如何在生产中监控docker
- docker stats和docker事件等工具来监控生产中的docker。
批量清理临时镜像文件
|
|
停止所有运行中的容器
|
|
批量清理后台停止容器
|
|
查看镜像支持的环境变量
|
|
本地的镜像文件存在哪里
docker相关的本地资源存在/var/lib/docker/目录下,其中container目录存放容器信息,graph目录存放镜像信息,aufs目录下存放具体的镜像底层文件。
访问宿主机网络
https://jingsam.github.io/2018/10/16/host-in-docker.html
非root用户操作docker
|
|
跨平台build
|
|
Author bingym
LastMod 2022-01-29