docke基本命令合集

`docker 命令全集
一:首先来理解三个名词解释:

1、镜像(image)
Docker 镜像(Image)就是一个只读的模板。例如:一个镜像可以包含一个完整的操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

2、仓库(repository)
仓库(Repository)是集中存放镜像文件的场所。

3、容器(container)
Docker 利用容器(Container)来运行应用。容器是从镜像(Image)创建的运行实例。

二:常用的命令集合如下:

容器生命周期管理 — docker
[run|start|stop|restart|kill|rm|pause|unpause|create]

容器操作运维 — docker
[ps|exec|inspect|top|attach|events|logs|wait|export|import|port]

容器rootfs命令 — docker
[commit|cp|diff]

本地镜像管理 — docker
[images|rmi|tag|build|history|save]

镜像仓库 — docker
[login|pull|push|search]

其他命令 — docker
[info|version]

| 命令 | 解释 |
| ---- | ---- | ---- |
| docker run -d --name alias-Name imageName | 在后台启动一个容器 |
| docker start/stop/restart Name/ID | 启动容器/停止容器/重启容器 |
| docker kill -s KILL Name/ID | 杀死一个运行的容器 |
| docker rm /rm -f Name/ID | 删除容器/强制删除容器 |
| docker pause/unpause Name/ID | 暂停容器/恢复容器 |
| docker create --name CONTAINER_Name imageName | 只创建容器但不启动 |
| docker ps / docker ps -a | 查看运行的容器 |
| docker exec -it CONTAINER_ID /bin/bash [--privileged=true|false] | 进行一个运行中的容器,开启一个新的终端 (--privileged=true是否执行命令最高权限,默认是false) |
| ddocker attach CONTAINER_ID | 进行一个运行中的容器,不开启一个新的终端 |
| docker inspect CONTAINER_Name | 查看容器的相关信息 |
| docker top CONTAINER_Name | 查看容器里面的进程 |
| docker events -f "image"="imageName" --since="1467302400" | 时间戳=2016年7月1日后的相关事件 |
| docker logs CONTAINER_Name | 查看容器的日志输出 |
| docker wait CONTAINER_Name | 阻塞运行直到容器停止,然后打印出它的退出代码 |
| docker export CONTAINER_ID > test.tar | 将容器进行打包保存到本地,文件类型为tar |
| docker import test.tar - image_name:tag | 将上面保存的文件导入到镜像库中 |
| docker export -o test.tar CONTAINER_ID | 将容器进行打包保存到本地,文件类型为tar |
| cat test.tar |docker import - image_name:tag | 将上面保存的文件导入到镜像库中 |
| docker port CONTAINER_ID | 查看容器的端口映射情况 |
| docker save -o test.tar CONTAINER_ID | 将当前的镜像保存到本地的一个tar 类型的文件 |
| docker load -i test.tar | 载入镜像 |
| docker commit -a "tony test" -m "my mysql" CONTAINER_ID mymysql:v1 | 提交一个正在运行的容器为镜像(-a是作者-m是提交信息) |
| docker cp /ruiqi/content CONTAINER_ID:/ruiqi/ | 将某文件复制到容器内 |
| docker diff CONTAINER_ID | 用来检查容器里面文件结构的更改 |
| docker tag mysql:v5.6 mysql:v5.7 | 给镜像做一个有别名的复本 |
| docker build -t runoob/ubuntu:v1 . | 构建一个镜像 |
| docker history image_name | 查看当前这个镜像的历史信息 |
| docker cp /ruiqi/content CONTAINER_ID:/ruiqi/ | 将某文件复制到容器内 |
| docker update [OPTIOS] CONTAINER_ID | 更新容器的一些运行时配置 |

docker login //登录镜像仓库
docker pull //从镜像仓库中拉镜像
docker push //向镜像仓库推本地的镜像文件
docker search //检索镜像内容

三:指令说明

指令 说明 举例
ARG 定义创建镜像过程中使用的变量 ARG VERSION=1.9.1
FROM 指定所创建镜像的基础镜像 FROM debian:$
LABEL 为生成的镜像添加元数据标签信息 LABEL verion="1.9.1"
EXPOSE 声明镜像内服务监听的端口 EXPOSE 22 80 443
ENV 指定环境变量 ENV APP_VERION=1.0.0
ENV APP_HOME=/usr/local/app
ENV PATH $PATH:/usr/local/bin
ENTRYPOINT 指定镜像的默认入口命令 方法一:ENTRYPOINT ["executable", "paraml ", "param2"]: exec 调用执行
方法二:ENTRYPOINT command param 1 param2: shell 中执行
VOLUME 创建一个数据卷挂载点 VOLUME ["/data"]
USE 指定运行容器时的用户名或UID
WORKDIR 配置工作目录 WORKDIR /path/to/workdir
WORKDR test
RUN pwd 最终路径为: /path/to/workdir/test/
ONBUILD 创建子镜像时指定自动执行的操作指令 在父镜像中定义的ONBUILD,会在在镜像中执行指令
STOPSIGNAL 指定退出的信号值 STOPSIGNAL signal
HEALTHCHECK 配置所启动容器如何进行健康检查 HEALTHCHECK [OPTIONS] CMD command :根据所执行命令返回值是否为判断
SHELL 指定默认shell类型 SHELL [” executable ”,”parameters”]
默认值为 ["/bin/sh","-c"]
ADD 添加内容到镜像 ADD src dest
注:如果src是一个tar,会自动解压
ADD *.c /code/
COPY 复制内容到镜像 COPY src dest
SHELL 指定默认shell类型 SHELL [” executable ”,”parameters”]
默认值为 ["/bin/sh","-c"]

四:利用dockerfile 制作一个tomcat 运行image:

[root@localhost common]# more Dockerfile.tomcat
FROM daocloud.io/centos:7
COPY jdk-8u144-linux-x64.rpm /opt/jdk-8u144-linux-x64.rpm
RUN ["rpm","-ivh","/opt/jdk-8u144-linux-x64.rpm"]
COPY security /usr/java/jdk1.8.0_144/jre/security
COPY certs /etc/pki/tls/certs
COPY tomcat /opt/tomcat
RUN ["ln","-s","/opt/tomcat","/usr/local/tomcat"]

`

posted @ 2021-05-19 15:21  坏坏不坏  阅读(165)  评论(0编辑  收藏  举报