Docker常用命令

ps -ef | grep docker  #查看docker是否启动
docker version     # 查看 docker 版本

systemctl start docker # 启动 Docker
systemctl stop docker  #停止docker
systemctl restart docker  #重启docker
systemctl status docker  #查看docker状态
systemctl enable docker  #设置docker开机启动

#卸载docker命令
systemctl stop docker 
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

docker 具体命令 --help  #查看docker命令帮助文档
镜像命令

docker images:列出本地主机上的镜像

-a : 列出本地所有的镜像(含历史映像层) -q : 只显示镜像ID。

标签 含义
REPOSITORY 表示镜像的仓库源
TAG 镜像的标签版本号
IMAGE ID 镜像ID
CREATED 镜像创建时间
SIZE 镜像大小
docker search [OPTIONS] 镜像名字  #搜索某个镜像
--limit : N  列出N个镜像,默认25个



docker pull 镜像名字       #拉取镜像,不指明版本号自动拉取最新版,相当于latest
docker pull 镜像名字:TAG   #拉取镜像,指明具体的版本号


docker rmi -f 镜像名:TAG  #删除单个镜像
docker rmi -f 镜像名1:TAG 镜像名2:TAG  #删除多个镜像
容器命令
  1. docker run [OPTIONS] 镜像名新建+启动容器

参数 含义
-- name=“容器新名字” 指定容器的名称
-d 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i 保持输入流打开,以交互模式运行容器,通常与 -t 同时使用
-t 为容器重新分配一个伪输入终端
-P 随机端口映射,大写P,自动将容器内部所有端口映射到主机的临时端口上
-p 指定端口映射,小写p,如-p 8080:80,将主机的8080端口映射到容器的80端口
[root@localhost ~] docker run -it --name=myub ubuntu bash    #bash命令启动了Bash shell,允许与容器内部进行交互
  • 前台交互式启动 : docker run -it redis:latest

  • 后台守护式启动: docker run -d redis:latest

一般像这种 redis,mysql…这种后台服务,建议采取后台守护式启动,Docker容器后台运行,就必须有一个前台进程.

# 进入该redis 使用
docker exec -it 容器id bash
  1. docker ps [OPTIONS]列出容器

参数 含义
-a 列出当前所有的容器【包括关闭的】
-l 显示最近创建的容器
-n 显示最近n个创建的容器。
-q 静默模式,只显示容器编号。
  1. docker exec -it 容器ID bash重新进入容器

    • 使用 exec 重新进入容器,会打开新终端,开启新的进程,使用 exit 不会导致容器的停止,即不会导致之前那个进程停止

  1. docker attach 容器ID重新进入容器

    • attach 不会开启新的进程,exit 会导致容器的停止 !

  1. docker cp 容器ID从容器中拷贝文件到主机上

容器命令
  1. docker run [OPTIONS] 镜像名新建+启动容器

参数 含义
-- name=“容器新名字” 指定容器的名称
-d 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i 保持输入流打开,以交互模式运行容器,通常与 -t 同时使用
-t 为容器重新分配一个伪输入终端
-P 随机端口映射,大写P,自动将容器内部所有端口映射到主机的临时端口上
-p 指定端口映射,小写p,如-p 8080:80,将主机的8080端口映射到容器的80端口
[root@localhost ~] docker run -it --name=myub ubuntu bash    #bash命令启动了Bash shell,允许与容器内部进行交互
  • 前台交互式启动 : docker run -it redis:latest

  • 后台守护式启动: docker run -d redis:latest

一般像这种 redis,mysql…这种后台服务,建议采取后台守护式启动,Docker容器后台运行,就必须有一个前台进程.

# 进入该redis 使用
docker exec -it 容器id bash

docker ps [OPTIONS]列出容器

参数 含义
-a 列出当前所有的容器【包括关闭的】
-l 显示最近创建的容器
-n 显示最近n个创建的容器。
-q 静默模式,只显示容器编号。

docker exec -it 容器ID bash重新进入容器

使用 exec 重新进入容器,会打开新终端,开启新的进程,使用 exit 不会导致容器的停止,即不会导致之前那个进程停止

docker attach 容器ID重新进入容器

attach 不会开启新的进程,exit 会导致容器的停止 !

docker cp 容器ID从容器中拷贝文件到主机上

导入导出容器

#export 导出容器的内容留作为一个tar归档文件[对应import命令]  备份整个容器
docker export 容器ID > 文件名.tar
#import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号      #后面三个是自定义的,相当于自己定制一个镜像并导入
提交下载
# 使用 commit 命令,提交镜像到本地
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
docker commit -m="add vim to ubuntu" -a="zourui" c546b67f003e myubuntu:1.0

docker login --username=yang15511513972 registry.cn-hangzhou.aliyuncs.com   #登录阿里云
#推送到阿里云
docker tag 5a9d20d97513 registry.cn-hangzhou.aliyuncs.com/atguiguu/myubuntu:1.0    
docker push registry.cn-hangzhou.aliyuncs.com/atguigu/myubuntu:1.0                

docker pull registry.cn-hangzhou.aliyuncs.com/atguiguu/myubuntu:1.0   #阿里云拉取镜像
容器数据卷
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录  镜像名   #如果写的目录没有,会自动创建

docker run -d -p 5000:5000 -v /zzyyuse/myregistry/:/tmp/registry --privileged=true registry
#默认情况,仓库被创建在宿主机/var/lib/registry 目录下  但是这里指定了安装在/zzyyuse/myregistry/
#privileged=true  解决挂载的权限问题        -v 添加自定义容器卷
#/tmp/registry 容器内的路径 没有这个目录也会自动创建,实现了容器内外的信息共享,相当于这里面的数据备份到myregistry中

docker inspect 容器ID  #查看数据卷是否挂载成功

 #  rw: 表示**容器内**可读可写, read write 。不写rw  默认就是可读可写
 docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw  镜像名

你可能感兴趣的:(docker)