Docker 学习 丨 Docker基础命令

277 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

Docker Run 的过程发生了什么

image.png

底层原理 Docker 是怎么工作的

Docker 是一个 C/S (Client-Server)结构的系统, Docker 的守护进程运行在本机上, 通过 Socket 从客户端访问

DockerServer 接收到 Docker-Client 的指令, 就会执行这个命令

image.png

Docker 比 虚拟机 更少的 抽象层

* Docker 的常用命令

帮助命令

docker version
docker info
docker 命令 --help # 万能命令

* 镜像的基本命令

docker images

docker images <-a -f -q> # 查看本地主机所有镜像
# 解释
# REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
# 镜像源        标签       id         创建时间   大小  
Options:
  -a, --all             Show all images (default hides intermediate images)
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print images using a Go template
      --no-trunc        Don't truncate output
  -q, --quiet           Only show image IDs  只显示 id
 

docker search 搜索镜像

docker search mysql --filter=STARS=3000

docker pull 下载镜像

docker pull mysql
docker pull mysql:tag
# 查看镜像的 tag

docker rmi 删除镜像

docker rmi -f  ImageId 或 <镜像名称>
# 删除全部
docker rmi $(docker images -aq)

* 容器的基本命令

说明: 有了镜像才可以创建容器

新建容器并启动

docker run --help
docker run [可选参数] <image>
# 参数说明
--name="容器名字" # 用来区分容器
-d              # 后台方式运行
-it             # 使用交互方式运行, 进入容器查看内容
-p              # 指定容器的端口 -p 8080:8080
  -p 主机端口:容器端口
  -p 容器端口(不往外面走了)
  容器端口
  -p ip:主机端口:容器端口
-P              # 随机指定端口
# 启动并进入容器
docker run -it centos /bin/bash
exit # 从容器中退回主机(容器停止并退出)
# 不停止退出
Ctrl + P + Q

查看运行的容器

docker ps # 列出正在运行的容器
docker ps -a # 列出所有的容器(运行中或已停止)
-n # 显示最近创建的容器
docker ps -a -n=1
​
docker ps -aq # 列出容器的 id

删除容器

docker rm <容器 id>
docker rm $(docker ps -aq)
docker rm -f   # 强制删除
docker  ps -a -q|xargs docker rm # 删除所有的容器

启动和停止容器的操作

docker start <容器id>
docker restart <容器id>
docker stop <容器id>
docker kill <容器id>  # 强制停止
docker pause <容器id> # 暂停容器
docker unpause <容器id> # 启动容器

* 常用的其他命令

查看 docker 容器日志

# docker logs --help
docker logs -f -t --tail <容器 id>
docker run -d centos /bin/sh -C "while true;do echo tongtong;sleep 1;done"
docker logs -f -t --tail <容器 id>

查看容器中的进程信息

docker top --help
docker top <容器 id>

查看镜像的元数据

docker inspect --help

进入当前正在运行的容器

# 我们通常容器都是使用后台方式运行的, 需要进入容器修改一些配置
# 命令
docker exec -it <容器 id> /bin/sh  # 以交互的方式进入容器 </bin/sh> </bin/bash>  终端进入# 方式 2
docker attach <容器id>  # 进入正在运行的容器, 这时如果有日志还是会打印的  直接进入
# 该方式退出的话用 ctrl + p + q , 否则(使用 exit)会停止容器

从容器内拷贝文件到主机上

docker cp <容器id:容器内路径>
​
# 测试: 将容器中的文件拷贝到主机
docker run -itd centos # 启动容器
docker ps # 获取容器 id, 例如:a123456
docker exec a123456 /bin/bash # 或者 docker attach a123456 进入容器
cd root & touch test.js # 创建测试文件
exit # 或 ctrl + q + p 退出容器
docker cp a123456:/root/test.js /Users/xujiantong/Desktop # 拷贝容器内文件到主机# 拷贝是一个手动过程, 未来我们使用 -v 卷的技术, 可以实现自动同步