前言
老生常谈的介绍直接看链接,结构看下图
英文官网:docs.docker.com/get-started…
中文翻译:dockertips.readthedocs.io/en/latest/d…

基础命令
搜索镜像
docker search nginx
查看所有镜像
docker images
docker images -a
镜像拉取
docker pull [name] // 默认拉取最新版本,也可以手动指定版本,如:docker pull nginx:1.20.1
删除镜像
docker rmi redis // 删除某个
docker rmi $(docker images -q) // 删除所有镜像,不删除容器
重启镜像
docker restart [name/id]
启动所有容器
docker start $(docker ps -a -q)
列出运行中容器
docker ps // 查看运行中的容器
docker ps -a // 查询所有容器
docker ps -a | grep [name] // 根据名称查询容器
复制nginx容器文件到宿主机
docker cp nginx:/etc/nginx/nginx.conf /Users/c005/Desktop/JayShen/docker/nginx
docker cp nginx:/etc/nginx/conf.d /Users/c005/Desktop/JayShen/docker/nginx
docker cp nginx:/usr/share/nginx/html /Users/c005/Desktop/JayShen/docker/nginx
docker cp nginx:/var/log/nginx/ /Users/c005/Desktop/JayShen/docker/nginx/log
nginx容器中目录介绍:
| 文件 | 描述 |
|---|---|
| /etc/nginx/nginx.conf | 配置文件 |
| /etc/nginx/conf.d | 配置文件夹 |
| /usr/share/nginx/html/ | 静态资源目录 |
| /var/log/nginx/ | 日志目录 |
| /usr/sbin/nginx | 主程序 |
启动容器
// 单行命令
docker run -d --name nginx-test -p 9000:80 nginx
// 多行命令,并挂载文件(形成关联映射只要我们改动本地的配置文件就会自动映射到nginx容器,极其方便)
docker run \
-p 9000:80 \
--name nginx \
-v /Users/c005/Desktop/JayShen/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /Users/c005/Desktop/JayShen/docker/nginx/conf.d:/etc/nginx/conf.d \
-v /Users/c005/Desktop/JayShen/docker/nginx/log:/var/log/nginx \
-v /Users/c005/Desktop/JayShen/docker/nginx/html:/usr/share/nginx/html \
-d nginx
| 命令 | 描述 |
|---|---|
| -d | 指定容器以守护进程方式在后台运行 |
| --name | nginx-test表示为当前容器起一个别名 |
| -p | 表示将本机的9000端口映射到nginx镜像的80端口 |
| nginx | 镜像REPOSITORY,或者可以使用IMAGE ID,可通过命令docker images查询到镜像信息,然后找到镜像的REPOSITORY标识或IMAGE ID标识即可,我这里以nginx举例 |
| -v | 挂载文件 [宿主机文件路径]:[容器内文件路径] |
| -e | 设置时区 |
| --restart=always | docker启动时自动启动容器 |
| --privileged=true | 打开root权限 |
| \ | 换行 |
成功后如下:


进入容器
docker exec -it [name or id] /bin/bash
| 命令 | 描述 |
|---|---|
| -i | 以交互模式运行容器,通常与 -t 同时使用;例如-it |
| -t | 为容器重新分配一个伪输入终端,通常与 -i 同时使用;例如-it |
| /bin/bash | 其实就是表示载入容器后运行bash(命令语言解释程序), 因为docker中必须要保持一个进程(运行的程序)的运行,要不然整个容器就会退出,所以说,bash就担任起了docker中运行的那个进程的角色!而/bin/bash则是bash在linux下的位置 |
退出容器
exit
停止容器
docker stop [name]
删除容器
docker rm [name]
删除正在运行的容器
docker rm -f [name]