记住命令最好的方法是不断的用,但是命令多了还是需要记录一下。

镜像操作

# 镜像列表
docker images
# 检索镜像
docker search ${镜像名}
# 下载镜像
docker pull ${镜像名}
# 删除镜像
docker rmi ${镜像名/镜像id}

# 发布镜像
docker login --username=[userName] --password=[pwd] [registryURL]
docker push ${镜像名}
# 如果要发布到私有仓库
docker push ${yourdomain.com}:${port}/${镜像名}:${tag}

# 构建镜像
# 根据当前目录下的 Dockerfile 构建(-t为添加tag .表示Dockerfile在当前路径)
docker build -t ${镜像名}:${tag} .
# -f 指定 Dockerfile 的位置
docker build -t ${镜像名}:${tag} -f ${Dockerfile_path} .

容器操作

# 加载镜像并创建容器运行
docker run ${镜像名}:${tag}
  • -d后台(守护态)运行
  • -it:-t分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开
  • -v /root/tmp:/tmp指定宿主机(左)与容器共享(挂载)的目录
  • --restart=always自动重启
  • --name=指定容器名
  • -p 8080:80暴露容器端口80并与宿主机的8080端口绑定
# 正在运行的容器列表(-a列出所有的容器 --no-trunc显示完整启动命令 -l最近一次启动的容器)
docker ps
# 启动 | 关闭 | 重启 | 删除容器
docker start | stop | restart | rm ${容器名/容器id}
# 查看容器的端口映射
docker port ${容器名/容器id}
# 查看容器详情
docker inspect ${容器名/容器id}
# 删除所有容器
docker rm `docker ps -a -q`

容器文件操作

# 将当前目录的test.md文件拷贝到容器的 /tmp 目录下
docker cp test.md ${容器名}:/tmp
# 将容器的/tmp/test.md目录拷贝到当前目录下
docker cp ${容器名}:/tmp/test.md ./out.md

容器日志查询

docker logs -f -t --since="2019-12-01" --tail=10 ${容器名}
  • -f实时日志
  • -t包含日志产生的日期
  • --since=输出指定日期之后的日志
  • --tail=查看最后的x条日志

进入容器内部

# (/bin/bash为同时运行的命令)
docker exec -it ${容器名} /bin/bash
# 如进入redis
docker exec -it ${容器名} redis-cli

结语

此篇只着重介绍了一些常用命令,系统的学习需要参考 Docker 官方文档,可见以下参考链接进行学习,本篇也不是更新的最终章,尽请期待...


参考