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 #删除多个镜像
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
:从容器中拷贝文件到主机上
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 镜像名