1、push
将本地的镜像上传到镜像仓库,要先登陆到镜像仓库。参数说明:
- –disable-content-trust : 忽略镜像的校验,默认开启
# 上传本地镜像myapache:v1到镜像仓库中。
docker push myapache:v1
1.2、search
从Docker Hub查找镜像。参数说明:
- –automated : 只列出 automated build类型的镜像;
- –no-trunc : 显示完整的镜像描述;
- -f <过滤条件>: 列出指定条件的镜像。
# 从 Docker Hub 查找所有镜像名包含 java,并且收藏数大于 10 的镜像
docker search -f stars=10 java
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
java Java is a concurrent, class-based... 1037 [OK]
anapsix/alpine-java Oracle Java 8 (and 7) with GLIBC ... 115 [OK]
develar/java 46 [OK]
2、pull
从镜像仓库中拉取或者更新指定镜像。参数说明:
- -a : 拉取所有 tagged 镜像
- –disable-content-trust : 忽略镜像的校验,默认开启
# 从Docker Hub下载java最新版镜像。
docker pull java
# 从Docker Hub下载REPOSITORY为java的所有镜像。
docker pull -a java
3、export
将文件系统作为一个tar归档文件导出到STDOUT。参数说明:
- -o : 将输入内容写到文件。
# 将id为a404c6c174a2的容器按日期保存为tar文件。
docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2
ls mysql-`date +%Y%m%d`.tar
3.2、save
将指定镜像保存成 tar 归档文件。参数说明:
- -o : 输出到的文件。
# 将镜像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文档
docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
4、load
导入使用 docker save
命令导出的镜像。参数说明:
- –input , -i : 指定导入的文件,代替 STDIN。
- –quiet , -q : 精简输出信息。
# 导入镜像
docker load --input fedora.tar
4.2、import
从归档文件中创建镜像。参数说明:
- -c : 应用docker 指令创建镜像;
- -m : 提交时的说明文字;
# 从镜像归档文件my_ubuntu_v3.tar创建镜像,命名为runoob/ubuntu:v4
docker import my_ubuntu_v3.tar runoob/ubuntu:v4
5、镜像内部的基本操作
5.1、查看镜像
docker images
5.2、搜索镜像
docker search [OPTIONS] 镜像名字
docker search mysql
5.3、拉去镜像(2、pull)
docker pull
docker pull mysql #没有制定版本则默认最新版
5.4、运行镜像
docker run
docker run tomcat
运行镜像后可以按 ctrl+c
退出
5.5、删除镜像
docker rmi 镜像名/镜像ID #若镜像在运行则会报错
docker rmi -f 镜像名/镜像ID #强制删除一个
docker rmi -f mysql
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID #删除多个 其镜像ID或镜像用用空格隔开即可
docker rmi -f mysql redis
docker rmi -f $(docker images -aq)
#删除全部镜像 -a 意思为显示全部, -q 意思为只显示ID
6、build Dockerfile 创建镜像
参数说明:
- –build-arg=[] : 设置镜像创建时的变量;
- –cpu-shares : 设置 cpu 使用权重;
- –cpu-period : 限制 CPU CFS周期;
- –cpu-quota : 限制 CPU CFS配额;
- –cpuset-cpus : 指定使用的CPU id;
- –cpuset-mems : 指定使用的内存 id;
- –disable-content-trust : 忽略校验,默认开启;
- -f : 指定要使用的Dockerfile路径;
- –force-rm : 设置镜像过程中删除中间容器;
- –isolation : 使用容器隔离技术;
- –label=[] : 设置镜像使用的元数据;
- -m : 设置内存最大值;
- –memory-swap : 设置Swap的最大值为内存+swap,"-1"表示不限swap;
- –no-cache : 创建镜像的过程不使用缓存;
- –pull : 尝试去更新镜像的新版本;
- –quiet, -q : 安静模式,成功后只输出镜像 ID;
- –rm : 设置镜像成功后删除中间容器;
- –shm-size : 设置/dev/shm的大小,默认值是64M;
- –ulimit : Ulimit配置。
- –squash : 将 Dockerfile 中所有的操作压缩为一层。
- –tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
- –network: 默认 default。在构建期间设置RUN指令的网络模式
# 使用当前目录的 Dockerfile 创建镜像,标签为 runoob/ubuntu:v1
docker build -t runoob/ubuntu:v1 .
# 使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像
docker build github.com/creack/docker-firefox
# 通过 -f Dockerfile文件的位置 创建镜像
docker build -f /path/to/a/Dockerfile .
7、commit 容器转镜像
从容器创建一个新的镜像。参数说明:
- -a : 提交的镜像作者;
- -c : 使用Dockerfile指令来创建镜像;
- -m : 提交时的说明文字;
- -p : 在commit时,将容器暂停。
# 将容器a404c6c174a2 保存为新的镜像,
# 并添加提交人信息和说明信息。
docker commit -a "guodong" -m "my db" a404c6c174a2 mymysql:v1
8、run 运行镜像(将镜像转容器)
创建一个新的容器。
# 使用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
# 使用镜像nginx:latest以交互模式启动一个容器,
# 在容器内执行/bin/bash命令。
docker run -it nginx:latest /bin/bash
9、容器内部操作
9.1、查看正在运行的容器
docker ps
docker ps -a # 查看所有容器
#加格式化方式访问,格式会更加清爽
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
9.2、创建容器(8、运行镜像)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用参数:
--name=NAME #为容器指定名字为NAME,不使用的话系统自动为容器命名
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互,一般连用,即-it);
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p
# 创建并允许 Nginx 容器
docker run -d --name nginx -p 80:80 nginx
9.3、启动守护式容器(后台运行)
docker run -d 容器名
docker run -d redis:6.0.8
9.4、停止容器
docker stop 容器名
docker stop nginx
9.5、启动容器
docker start 容器名
docker start nginx
docker restart 容器名
docker restart nginx
9.6、进入正在运行的容器
docker exec -it 容器名 bashshell
docker exec -it nginx /bin/bash```
9.7、停止容器
docker stop 容器名
docker stop nginx
9.8、强制停止容器
docker kill 容器名
docker kill nginx
9.9、 删除容器
#删除一个
docker rm 容器ID
docker rm nginx
docker rm -f 容器ID #强制删除
docker rm -f nginx
#删除多个
docker rm -f $(docker ps -a -q)
或
docker ps -a -q | xargs docker rm
9.10、查看容器日志
docker logs 容器名
docker logs nginx
参考文章:Docker 常用命令大全!!_docker常用命令-CSDN博客
Docker常用命令大全 - 吹不散的流云 - 博客园