1. 拉取镜像
docker pull 镜像名(:标签) # 从 docker.io/library 中拉取镜像, 不指定tag标签默认拉取最新版本 Docker 拉取镜像时, 如果镜像更新且本地已有基础镜像(Base Image), 每次只拉取增量部分, 不会全部都拉取
2. 推送镜像
docker push 镜像名:标签 docker push a386303138/alpine:v3.14.1 Docker 推送镜像时, 如果以基础镜像(Base Image)进行更改的, 每次只推送增量部分, 基础镜像不会推送到仓库
3. 查询镜像
docker images / docker image ls # 查询已有镜像
4. 修改镜像 Tag
docker tag 镜像ID 镜像名称:标签 docker tag 镜像ID a386303138/alpine:v3.14.1
5. 搜索镜像
docker search 镜像名
6. 查询容器
docker ps # 查询正在运行的容器 docker ps -a # 查询全部容器
7. 运行镜像
docker run -itd --rm --name 容器名 镜像名:标签 COMMAND -i :表示启动-一个可交互的容器, 并持续打开标准输入 -t :表示使用终端关联到容器的标准输入输出上 -d :表示将容器放置后台运行 --rm :退出后即删除容器 --name :表示定义容器唯一名称 IMAGE :表示要运行的镜像 COMMAND :表示启动容器时要运行的命令 docker run -itd --name a386303138/alpine:latest a386303138/alpine:latest /bin/bash
8. 进入容器
docker exec -it 容器名 COMMAND exit : 退出容器
9. 启动/停止/重启容器
docker start/stop/restart 容器名/容器ID
10. 删除容器
docker rm 容器名/容器ID # 需要先停止容器才能删除, 或者添加参数 -f 强制删除 docker rm `docker ps -a|grep -i exit|awk '{print $1}'` # 删除所有停止运行的容器
11. 提交容器
docker run -d --name myalpine a386303138/alpine:latest /bin/sleep 300s # 运行一个容器 docker exec -it myalpine /bin/sh # 进入容器 echo "hello world" >1.txt # 写入数据 exit # 退出 docker commit -p 容器名/容器ID 新镜像名:新标签 # -p 保存到执行命令这一时刻的内容 之后更新的不会报错 docker commit -p myalpine a386303138/alpine:v_1.txt
12. 导入/导出镜像
导出: docker save 镜像名:标签/镜像ID > xxx.tar docker save a386303138/alpine:v_1.txt > alpine:v_1.txt.tar # 导入后带tag标签 docker save 021b3423115f > alpine:latest.tar # 导入后不带tag标签 导入: docker load -i xxx.tar 或 docker load < xxx.tar docker load -i alpine\:v_1.txt.tar 或者 docker load < alpine\:v_1.txt.tar tip: 如果你导出的时候名称用了: 记得导入的时候用\转义
13. 查看容器日志
docker logs 容器名/容器ID -f : 持续追踪日志输出
14. 重命名容器
docker rename 旧容器名/容器ID 新容器名 docker rename myalpine hello_myalpine
15. 端口映射
docker run -p 主机端口:容器端口 docker run -d --name nginx -p 81:80 a386303138/nginx:v1.20.1 [root@docker ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 175d636b6fd4 a386303138/nginx:v1.20.1 "/docker-entrypoint.…" 46 seconds ago Up 43 seconds 0.0.0.0:81->80/tcp bold_davinci
16. 文件目录挂载
docker run -v 主机目录文件:容器目录文件 镜像名/镜像ID docker run -d --name nginx -p 81:80 -v /html:/usr/share/nginx/html a386303138/nginx:v1.20.1 [root@docker ~]# netstat -lntup | grep 81 tcp6 0 0 :::81 :::* LISTEN 4540/docker-proxy
17. 传递环境变量
docker run -e 环境变量键值对 镜像名/镜像ID [root@docker ~]# docker run --rm -e E_OPTS=123456 alpine:latest printenv # 可添加多个环境变量 -e 键值对...-e ... PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=ff9e2a15e781 E_OPTS=123456 HOME=/root --env-file # 批量传递环境变量, 将环境变量写入一个文件中 /root/env.txt docker run --rm --env-file /root/env.txt alpine:latest printenv
18. 容器内下载软件
docker exec -it nginx /bin/bash apt-get update && apt-get install tree -y