一、docker 命令介绍
1、帮助命令
docker --help
管理命令:
container 管理容器
image 管理镜像
network 管理网络
命令:
attach 介入到一个正在运行的容器
build 根据 Dockerfile 构建一个镜像
commit 根据容器的更改创建一个新的镜像
cp 在本地文件系统与容器中复制 文件/文件夹
create 创建一个新容器
exec 在容器中执行一条命令
images 列出镜像
kill 杀死一个或多个正在运行的容器
logs 取得容器的日志
pause 暂停一个或多个容器的所有进程
ps 列出所有容器
pull 拉取一个镜像或仓库到 registry
push 推送一个镜像或仓库到 registry
rename 重命名一个容器
restart 重新启动一个或多个容器
rm 删除一个或多个容器
rmi 删除一个或多个镜像
run 在一个新的容器中执行一条命令
search 在 Docker Hub 中搜索镜像
start 启动一个或多个已经停止运行的容器
stats 显示一个容器的实时资源占用
stop 停止一个或多个正在运行的容器
tag 为镜像创建一个新的标签
top 显示一个容器内的所有进程
unpause 恢复一个或多个容器内所有被暂停的进程
二、镜像相关
1、拉取镜像
docker pull
2、查看镜像
docker images
3、删除镜像
docker rmi
常用参数:
1. -f:强制删除运行中的容器
4、创建镜像
(1)对源镜像更改后重新建立新镜像
docker commit
常用参数:
1. -m:本次提交信息
2. --author="" :作者
(2)使用Dockerfile文件来构建镜像
docker build
常用参数:
1. -t x/y:z:指定镜像的命名空间为x仓库为y,tag为z
三、容器相关
1、运行容器
docker run
常用参数:
--name:为容器指定名称
-it:启动一个交互型容器,此参数为我们和容器提供了一个交互shell
-d:创建后台型容器
-restart=always:容器退出后自动重启
-restart=on-failure:x:容器退出时如果返回值是非0,就会尝试重启x次
-p x:y :主机端口:容器端口
-P:随机分配一个49000到49900的端口
-v:创建数据卷
-n :指定dns
-h : 指定容器的hostname
-e :设置环境变量
-m :设置容器使用内存最大值
--net: 指定容器的网络连接类型,支持 bridge/host/none/container
--link=x: 添加链接到另一个容器x
--expose=x: 开放端口x
这里docker create和docker run -it创建的容器都是交互型容器
2、查看正在运行的容器
docker ps
常用参数:
1. -a:查看所有容器
2. -l:只列出最近创建的
3. -n=x:只列出最后创建的x个
4. -q:只列出容器id
3、停止容器
docker stop //方式较温柔,慢慢的停止容器的运行
docker kill //方式简单粗暴,立即停止容器运行
4、删除容器
docker rm
常用参数:
1. -f:强制删除运行中的容器
2. docker rm `docker ps -aq`:删除所有容器
5、查看容器日志
docker logs
常用参数:
1. -f:实时查看日志
2. --tail=x:查看最后x行
3. -t:查看日志产生的时间
6、查看容器进程
docker top
7、查看容器配置信息
docker inspect
常用参数:
1. -f='{{x}}':查看x配置
8、进入容器
(1)进入交互型容器
docker attch
常用参数:
1. -f:强制删除运行中的容器
2. docker rm `docker ps -aq`:删除所有容器
(2)进入后台型容器
docker exec
常用参数:
1. -it 容器id /bin/bash:进入到后台容器
四、Dockerfile
FROM
FROM指定一个基础镜像, 一般情况下一个可用的 Dockerfile一定是 FROM 为第一个指令。至于image则可以是任何合理存在的image镜像。 FROM 一定是首个非注释指令 Dockerfile. FROM 可以在一个 Dockerfile 中出现多次,以便于创建混合的images。 如果没有指定 tag ,latest 将会被指定为要使用的基础镜像版本。
MAINTAINER
这里是用于指定镜像制作者的信息 RUN RUN命令将在当前image中执行任意合法命令并提交执行结果。命令执行提交后,就会自动执行Dockerfile中的下一个指令。 层级 RUN 指令和生成提交是符合Docker核心理念的做法。它允许像版本控制那样,在任意一个点,对image 镜像进行定制化构建。 RUN 指令缓存不会在下个命令执行时自动失效。比如 RUN apt-get dist-upgrade -y 的缓存就可能被用于下一个指令. –no-cache 标志可以被用于强制取消缓存使用。
ENV
ENV指令可以用于为docker容器设置环境变量 ENV设置的环境变量,可以使用 docker inspect命令来查看。同时还可以使用docker run –env
USER USER
用来切换运行属主身份的。Docker 默认是使用 root,但若不需要,建议切换使用者身分,毕竟 root 权限太大了,使用上有安全的风险。
WORKDIR
WORKDIR 用来切换工作目录的。Docker 默认的工作目录是/,只有 RUN 能执行 cd 命令切换目录,而且还只作用在当下下的 RUN,也就是说每一个 RUN 都是独立进行的。如果想让其他指令在指定的目录下执行,就得靠 WORKDIR。WORKDIR 动作的目录改变是持久的,不用每个指令前都使用一次 WORKDIR。
COPY
COPY 将文件从路径
ADD
ADD 将文件从路径
VOLUME
创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。
EXPOSE
EXPOSE 指令指定在docker允许时指定的端口进行转发。
CMD
Dockerfile.中只能有一个CMD指令。 如果你指定了多个,那么最后个CMD指令是生效的。 CMD指令的主要作用是提供默认的执行容器。这些默认值可以包括可执行文件,也可以省略可执行文件。 当你使用shell或exec格式时, CMD 会自动执行这个命令。
ONBUILD
ONBUILD 的作用就是让指令延迟執行,延迟到下一个使用 FROM 的 Dockerfile 在建立 image 时执行,只限延迟一次。 ONBUILD 的使用情景是在建立镜像时取得最新的源码 (搭配 RUN) 与限定系统框架。
ARG
ARG是Docker1.9 版本才新加入的指令。 ARG 定义的变量只在建立 image 时有效,建立完成后变量就失效消失 LABEL 定义一个 image 标签 Owner,并赋值,其值为变量 Name 的值。(LABEL Owner=$Name )
ENTRYPOINT
ENTRYPOINT是指定 Docker image 运行成 instance (也就是 Docker container) 时,要执行的命令或者文件。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/13364.html