Docker 命令
🐳 docker build
参数:
- -t,指定镜像的名称和标签,格式为 name:tag
- -f,指定 Dockerfile 文件的路径或 URL
- –build-arg,用于传递构建参数给 Dockerfile
示例:
构建一个名为 myimage 的镜像,使用当前目录下的 Dockerfile 文件:
docker build -t myimage .
🐳 docker run
参数:
- -d,以后台模式运行容器
- -p,指定容器端口与主机端口的映射关系
- –name,为容器指定名称
- –rm,容器退出时自动删除容器文件系统
- -e,设置环境变量
- -v,指定容器内外的数据卷映射关系
示例:
从 myimage 镜像启动一个名为 mycontainer 的容器,映射容器的 80 端口到主机的 8080 端口:
docker run -d -p 8080:80 --name mycontainer myimage
🐳 docker ps
参数:
- -a,列出所有容器而不仅仅是正在运行的容器
- -q,只列出容器 ID
示例:
列出所有正在运行的容器:
docker ps
🐳 docker images
参数:
- -a,列出所有镜像而不仅仅是已经构建的镜像
- -q,只列出镜像 ID
示例:
列出所有已经构建的镜像:
docker images
🐳 docker stop
参数:
- 无
示例:
停止名为 mycontainer 的容器:
docker stop mycontainer
🐳 docker start
参数:
- container,要启动的 Docker 容器 ID 或名称
示例:
启动已经停止的 Docker 容器:
docker start mycontainer
🐳 docker restart
参数:
- container,要重启的 Docker 容器 ID 或名称
示例:
重启正在运行的 Docker 容器:
docker restart mycontainer
🐳 docker rm
参数:
- -f,强制删除正在运行的容器
- -v,同时删除容器对应的数据卷
示例:
删除名为 mycontainer 的容器:
docker rm mycontainer
🐳 docker rmi
参数:
- -f,强制删除正在运行的容器
- -q,只删除镜像 ID
示例:
删除名为 myimage 的镜像:
docker rmi myimage
🐳 docker exec
参数:
- -i,以交互模式运行容器
- -t,为容器分配一个伪终端
- -u,指定执行命令的用户
- -e,设置环境变量
示例:
在名为 mycontainer 的容器中运行一个 shell:
docker exec -it mycontainer /bin/sh
🐳 docker logs
参数:
- -f,跟踪容器日志输出
示例:
查看名为 mycontainer 的容器的日志:
docker logs mycontainer
🐳 docker inspect
参数:
- 无
示例:
查看名为 mycontainer 的容器的详细信息:
docker inspect mycontainer
🐳 docker network
参数:
- create,创建一个新的网络
- connect,将容器连接到网络
- disconnect,将容器从网络中断开连接
- ls,列出所有网络
示例:
创建一个名为 mynetwork 的网络:
docker network create mynetwork
🐳 docker volume
参数:
- create,创建一个新的数据卷
- rm,删除一个数据卷
- ls,列出所有数据卷
示例:
创建一个名为 myvolume 的数据卷:
docker volume create myvolume
🐳 Docker tag
参数:
- 无
示例:
将本地的镜像打上标签,例如将名为 myimage 的镜像打上 tag 为 v1.0 的标签:
docker tag myimage:v1.0 myusername/myimage:v1.0
🐳 docker push
参数:
- 无
示例:
将本地的镜像推送到 Docker Hub 上,例如将名为 myimage 的镜像推送到 myusername 用户下的 Docker Hub:
docker push myusername/myimage:v1.0
🐳 docker pull
参数:
- 无
示例:
从 Docker Hub 上拉取名为 myimage 的镜像,例如拉取 myusername 用户下的 Docker Hub 上的 myimage 镜像:
docker pull myusername/myimage:v1.0
🐳 docker search
参数:
- –filter=STARS,根据收藏数过滤镜像
- –filter=IS_OFFICIAL,根据是否官方镜像过滤
- –filter=IS_AUTOMATED,根据是否自动构建过滤
- –limit=N,限制显示结果数量
示例:
搜索镜像,例如搜索名为 nginx 的镜像:
docker search nginx
🐳 docker history
参数:
- –no-trunc,显示完整的历史记录
示例:
查看镜像的历史记录,例如查看名为 myimage 的镜像的历史记录:
docker history myimage
🐳 docker save
参数:
- 无
示例:
将镜像保存为 tar 文件,例如将名为 myimage 的镜像保存为 myimage.tar 文件:
docker save myimage > myimage.tar
🐳 docker load
参数:
- 无
示例:
从 tar 文件中加载镜像,例如从 myimage.tar 文件中加载镜像:
docker load < myimage.tar
🐳 docker port
参数:
- 无
示例:
查看容器的端口映射情况,例如查看名为 mycontainer 的容器的端口映射情况:
docker port mycontainer
🐳 docker stats
参数:
- 无
示例:
查看容器的资源占用情况,例如查看名为 mycontainer 的容器的资源占用情况:
docker stats mycontainer
🐳 docker commit
参数:
- -a,指定作者
- -m,指定提交信息
- -p,在提交时暂停容器
示例:
将一个正在运行的容器提交为新的镜像,例如将名为 mycontainer 的容器提交为名为 myimage 的新镜像:
docker commit -m "Added new package" -a "John Doe" mycontainer myimage
🐳 docker login
参数:
- username,Docker Hub 用户名
- password,Docker Hub 密码
- email,Docker Hub 邮箱
示例:
登录 Docker Hub,使用用户名、密码和邮箱:
docker login --username=myusername --password=mypassword --email=myemail@example.com
🐳 docker logout
用于从 Docker Registry 登出,以便在使用 Docker Hub 或其他 Registry 时,切换到不同的账户
语法
docker logout [SERVER]
其中,SERVER 参数指定要登出的 Registry 地址,默认为 Docker Hub。例如,要从 Docker Hub 注销当前用户,可以使用以下命令:
docker logout
🐳 docker attach
用于连接到正在运行的容器,并将本地终端附加到容器的标准输入、输出和错误流
语法
docker attach [OPTIONS] CONTAINER
参数:
- –detach-keys:指定分离键,用于在容器中按下此键时,分离本地终端和容器的连接
- –no-stdin:禁用标准输入流
- –sig-proxy:启用信号代理,以便在容器中按下 Ctrl+C 等终止信号时,将信号传递到容器内部
需要注意的是,使用 docker attach 命令连接到正在运行的容器时,可能会导致容器中的进程被暂停或停止。因此,建议使用 docker exec 命令在容器中运行新的进程,而不是连接到已经运行的进程
🐳 docker system
参数:
- prune,清理所有未被使用的资源,包括未使用的容器、镜像、卷和网络
示例:
清理所有未被使用的 Docker 资源:
docker system prune