Docker常用命令

所有Docker命令手册

https://docs.docker.com/engine/reference/commandline/docker/

attach

绑定到运行中容器的 标准输入, 输出,以及错误流(这样似乎也能进入容器内容,但是

一定小心,他们操作的就是控制台,控制台的退出命令会生效,比如redis,nginx...)

build

从一个 Dockerfile 文件构建镜像

commit

把容器的改变 提交创建一个新的镜像

cp

容器和本地文件系统间 复制 文件/文件夹

create

创建新容器,但并不启动(注意与docker run 的区分)需要手动启动。start\stop

diff

检查容器里文件系统结构的更改【

A:添加文件或目录 D:文件或者目录删除 C:文

件或者目录更改】

events

获取服务器的实时事件

exec

在运行时的容器内运行命令

export

导出容器的文件系统为一个tar文件。commit是直接提交成镜像,export是导出成文 件方便传输

history

显示镜像的历史

images

列出所有镜像

images

列出所有镜像

import

导入tar的内容创建一个镜像,再导入进来的镜像直接启动不了容器。

/docker-entrypoint.sh nginx -g 'daemon ow ;'

docker ps --no-trunc 看下之前的完整启动命令再用他

info

显示系统信息

inspect

获取docker对象的底层信息

kill

杀死一个或者多个容器

load

从 tar 文件加载镜像

login

录Docker registry

logout

退出Docker registry

logs

获取容器日志;容器以前在前台控制台能输出的所有内容,都可以看到

pause

暂停一个或者多个容器

port

列出容器的端口映射

ps

列出所有容器

pull

从registry下载一个image 或者repository

push

给registry推送一个image或者repository

rename

重命名一个容器

restart

重启一个或者多个容器

rm

移除一个或者多个容

rmi

移除一个或者多个镜像

run

创建并启动容器

save

把一个或者多个镜像保存为tar文件

search

去docker hub寻找镜像

start

启动一个或者多个容器

stats

显示容器资源的实时使用状态

stop

停止一个或者多个容器

tag

给源镜像创建一个新的标签,变成新的镜像

top

显示正在运行容器的进程

unpause

pause的反操作

update

更新一个或者多个docker容器配置

version

Show the Docker version information

container

管理容器

image

管理镜像

network

管理网络

volume

管理卷

一.启动类命令

启动docker:

systemctl start docker


停止Docker:
 

systemctl stop docker


重启Docker:
 

systemctl restart docker


查看状态:
 

systemctl status docker


设置开机自启:

systemctl enable docker



二.帮助类命令

查看Docker版本:
 

docker version


查看Docker概要信息:

docker info

查看Docker总体帮助文档:
 

docker  --help

查看具体命令帮助文档:

docker 具体命令 --help

三.镜像命令

列出本地主机上的镜像

docker images

参数:

  • -a:列出所有镜像(含历史镜像)
  • -q:只显示镜像ID
  • -f:过滤

在远程仓库中搜索镜像

(默认取docker hub中搜索)

docker search 镜像名称

参数:

  • -f:过滤
  • --limit 数量:只展示前几项

下载镜像

docker pull 镜像名称[:tag]

不加 tag 时,默认下载最新的镜像(即tag为latest)。

查看占据的空间

查看镜像/容器/数据卷所占的空间:

docker system df

删除镜像

docker rmi 镜像名称/ID

可以使用空格分隔,删除多个镜像:

docker rmi 镜像1 镜像2 镜像3

删除全部镜像:

docker rmi -f $(docker images -qa)

四.虚悬镜像

仓库名、标签都是<none>的镜像,俗称虚悬镜像(dangling image)。

没什么用,建议删除

五.容器命令

新建启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用的参数:

  • --name:为容器指定一个名称
  • -d:后台运行容器并返回容器ID,也即启动守护式容器
  • -i:以交互模式(interactive)运行容器,通常与-t同时使用
  • -t:为容器重新分配一个伪输入终端(tty),通常与-i同时使用。也即启动交互式容器(前台有伪终端,等待交互)
  • -e:为容器添加环境变量
  • -P:随机端口映射。将容器内暴露的所有端口映射到宿主机随机端口
  • -p:指定端口映射

-p指定端口映射的几种不同形式:

  • -p hostPort:containerPort:端口映射,例如-p 8080:80
  • -p ip:hostPort:containerPort:配置监听地址,例如 -p 10.0.0.1:8080:80
  • -p ip::containerPort:随机分配端口,例如 -p 10.0.0.1::80
  • -p hostPort1:containerPort1 -p hostPort2:containerPort2:指定多个端口映射,例如-p 8080:80 -p 8888:3306

启动交互式容器

以交互方式启动ubuntu镜像

# -i 交互模式
# -t 分配一个伪输入终端tty
# ubuntu 镜像名称
# /bin/bash(或者bash) shell交互的接口
docker run -it ubuntu /bin/bash

退出交互模式:

方式1:

# 在交互shell中exit即可退回宿主机
exit;

方式2:使用快捷键ctrl + P + Q

方式1 退出后,容器会停止,方式2 退出后容器依然正在运行。

启动守护式容器

大部分情况下,我们系统docker容器服务时在后台运行的,可以通过-d指定容器的后台运行模式:

docker run -d 容器名

注意事项:

如果使用docker run -d ubuntu尝试启动守护式的ubuntu,会发现容器启动后就自动退出了。

因为Docker容器如果在后台运行,就必须要有一个前台进程。容器运行的命令如果不是那些一直挂起的命令(例如toptail),就会自动退出。

列出正在运行的容器

列出所有正在运行的容器:

docker ps [OPTIONS]

常用参数:

  • -a:列出当前所有正在运行的容器+历史上运行过的容器
  • -l:显示最近创建的容器
  • -n:显示最近n个创建的容器
  • -q:静默模式,只显示容器编号

容器其他启停操作

启动已经停止的容器

docker start 容器ID或容器名

重启容器

docker restart 容器ID或容器名

停止容器

docker stop 容器ID或容器名

强制停止容器

docker kill 容器ID或容器名

删除容器

删除已经停止的容器:

docker rm 容器ID或容器名

删除容器是 docker rm,删除镜像是 docker rmi,注意区分。

强制删除正在运行的容器:

docker rm -f 容器ID或容器名

一次删除多个容器实例:

docker rm -f $(docker ps -a -q)

# 或者
docker ps -a -q | xargs docker rm

查看容器日志

docker logs 容器ID或容器名

查看容器内运行的进程

docker top 容器ID或容器名

查看容器内部细节

docker inspect 容器ID或容器名

查看容器内变化

docker  diff 容器id或者容器名字
[root@localhost ~]# docker diff mynginx 
C /usr  #C为创建的文件
A /usr/2.txt  #A为添加的文件
C /var
C /var/cache
C /var/cache/nginx
A /var/cache/nginx/uwsgi_temp
A /var/cache/nginx/client_temp
A /var/cache/nginx/fastcgi_temp
A /var/cache/nginx/proxy_temp
D /var/cache/nginx/scgi_temp #D为删除的文件
C /run

进入正在运行的容器

进入正在运行的容器,并以命令行交互:

docker exec -it 容器ID bashShell

重新进入:

docker attach 容器ID

docker execdocker attach 区别:

  • attach直接进入容器启动命令的终端,不会启动新的进程,用exit退出会导致容器的停止
  • exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出不会导致容器的停止

如果有多个终端,都对同一个容器执行了 docker attach,就会出现类似投屏显示的效果。一个终端中输入输出的内容,在其他终端上也会同步的显示

容器和宿主机文件拷贝

容器内文件拷贝到宿主机:

docker cp 容器ID:容器内路径 目的主机路径

宿主机文件拷贝到容器中:
 

docker cp 主机路径 容器ID:容器内路径

导入和导出容器

export:导出容器的内容流作为一个tar归档文件(对应import命令);

import:从tar包中的内容创建一个新的文件系统再导入为镜像(对应export命令);再以新的镜像为模板,启动一个容器实例

示例:

# 导出
# docker export 容器ID > tar文件名
docker export nginx > nginx.tar

# 导入
# docker import  tar文件  自定义镜像用户/自定义镜像名:自定义镜像版本号
docker import nginx.tar nginx:v1
docker run -d  nginx:v1  /docker-entrypoint.sh nginx -g 'daemon off;' #导入的镜像运行必须加上之前完整的启动命令

注意:导入的镜像运行必须加上之前完整的启动命令

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值