
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]-i:以交互模式运行容器,通常与-t同时使用-P:随机端口映射,容器内部端口随机映射到主机的端口-p:指定端口映射,格式为:主机(宿主)端口:容器端口-t:为容器重新分配一个伪输入终端,通常与-i同时使用--name="nginx-lb":为容器指定一个名称h "mars":指定容器的hostname-e username="ritchie":设置环境变量--cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定CPU运行-m:设置容器使用内存最大值-network="bridge":指定容器的网络连接类型--link=[]:添加链接到另一个容器--volume , -v:绑定一个卷--rm:shell退出的时候自动删除容器--restart:自动重启docker create --name mynginx nginx:latestdocker run [OPTIONS] IMAGE [COMMAND] [ARG...]d:后台运行容器,并返回容器 ID,比creatre多了这个参数-i:以交互模式运行容器,通常与-t同时使用-P:随机端口映射,容器内部端口随机映射到主机的端口-p:指定端口映射,格式为:主机(宿主)端口:容器端口-t:为容器重新分配一个伪输入终端,通常与-i同时使用--name="nginx-lb":为容器指定一个名称h "mars":指定容器的hostname-e username="ritchie":设置环境变量--cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定CPU运行-m:设置容器使用内存最大值-network="bridge":指定容器的网络连接类型--link=[]:添加链接到另一个容器--volume , -v:绑定一个卷--rm:shell退出的时候自动删除容器--restart:自动重启#使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx docker run --name mynginx -d nginx:latest #使用镜像nginx:latest,以后台模式启动一个容器,将容器的80端口映射到主机的 80端口,主机的目录/data映射到容器的/data docker run -p 80:80 -v /data:/data -d nginx:latest 功能:查看容器,列出所有的正在运行的容器
语法:docker ps [OPTIONS]
关键参数
-a:显示所有的容器,包括未运行的-f:根据条件过滤显示的内容--format:指定返回值的模板文件。如 json 或者 table-l:显示 latest 的容器-n:列出最近创建的 n 个容器--no-trunc:不截断输出-q:静默模式,只显示容器编号-s:显示总的文件大小容器批量处理技巧
| 命令 | 解释 |
|---|---|
docker ps -qf name=xxx | 根据名称过滤得到容器编号 |
docker ps -f status=running | 根据状态过滤容器信息 |
docker ps -aq | 静默获取全部容器ID |
docker ps -f ancestor=xxx | 过滤镜像名/ID为xxx的容器信息 |
docker logs [OPTIONS] CONTAINER-f, --follow:跟踪日志输出--since:显示某个开始时间的所有日志-t, --timestamps:显示时间戳-n, --tail:仅列出最近N条容器日志docker attach [OPTIONS] CONTAINER--sig-proxy:是否将所有信号代理,默认是true,如果设置为false,退出的话不会影响容器,否则退出会导致容器退出-d:分离模式,在后台运行-i:即使没有附加也保持STDIN打开-t:分配一个伪终端-e:设置环境变量-u, --user:指定用户-w, --workdir:指定工作目录# 在容器SnowK中以交互模式执行echo docker exec -it SnowK echo "Hello SnowK" # 在容器SnowK中以交互模式打开shell docker exec -it SnowK bash docker start [OPTIONS] CONTAINER [CONTAINER...]docker stop [OPTIONS] CONTAINER [CONTAINER...]-s:发送的信号docker restart [OPTIONS] CONTAINER [CONTAINER...]-s:发送的信号docker kill [OPTIONS] CONTAINER [CONTAINER...]-s:发送的信号docker stop发送的是SIGTERM信号docker kill发送的是SIGKILL信号ps命令参数docker top CONTAINER [ps OPTIONS]/bin/bash终端来交互执行top命令,而且容器还不一定有top命令,可以使用docker top来实现查看Container中正在运行的进程docker stats [OPTIONS] [CONTAINER...]-a, -all:显示所有的容器,包括为运行的--format:指定返回值的模板文件,如 table,json--no-stream:展示当前状态就直接退出了,不再实时更新--no-trunc:不截断输出docker container inspect [OPTIONS] CONTAINER [CONTAINER...]-f:指定返回值的模板文件,如 table,json-s:显示总的文件大小docker inspect会自动检查是镜像还是容器然后显示详细信息docker port CONTAINER [PRIVATE_PORT[/PROTO]]docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH # 将主机/www/目录拷贝到容器mynginx的/www目录下 docker cp /www/ mynginx:/www/ # 将容器/www/目录拷贝到主机的/wwwbak目录下 docker cp mynginx:/www/ /wwwbak/ docker diff CONTAINERdocker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]-a:提交的镜像作者-c:使用Dockerfile指令来创建镜像;可以修改启动指令-m:提交时的说明文字-p:在commit时,将容器暂停docker commit c3f279d17e0a SnowK/Die:v1.0docker pause CONTAINER [CONTAINER...]docker unpause CONTAINER [CONTAINER...]docker rm [OPTIONS] CONTAINER [CONTAINER...]-f:通过SIGKILL信号强制删除一个运行中的容器-o:写入到文件docker wait CONTAINER [CONTAINER...]docker rename CONTAINER NEW_NAME-f, --force:不提示是否进行确认docker update [OPTIONS] CONTAINER [CONTAINER...]--cpus:CPU数量--cpuset-cpus:使用哪些CPU--memory:内存限制--memory-swap:交换内存--cpu-period:是用来指定容器对CPU的使用要在多长时间内做一次重新分配--cpu-quota:是用来指定在这个周期内,最多可以有多少时间用来跑这个容器-d参数即可,容器则在后台运行docker run -it nginxdocker exec -it nginx /bin/bashdocker create从Docker映像创建一个全新的容器,但是,它不会立即运行它docker start命令将启动任何已停止的容器,如果使用docker create命令创建容器,则可以使用此命令启动它docker run命令是创建和启动的组合,因为它创建了一个新容器并立即启动它 docker run命令在您的系统上找不到上述映像,它可以从Docker Hub中提 取映像docker save images_name: docker load命令将文件导入为一个镜像,会保存该镜像的的所有历史记录docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录docker export container_id:将一个容器导出为文件,再使用docker import命令将容器导入成为一个新的镜像,但是相比docker save命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照docker load命令来导入镜像库存储文件到本地镜像库,也可以使用docker import命令来导入一个容器快照到本地镜像库