Docker基本命令
docker基本命令
docker
对象包括镜像和容器
info查看docker信息
能够查看的信息包括注册中心信息、docker源信息、容器数目、docker服务器、客户端信息等。
docker info # 可以用来查看注册中心信息以及docker源的信息
镜像Image
IMAGE ID
和 REPOSITORY:TAG
唯一标识一个镜像
images查看镜像
docker images # 查看当前主机的本地镜像库
tag给镜像打标签
docker tag imagename:tag imageID
rmi删除镜像
# 第一种方式
docker rmi image_name:tag
# 第二种方式
docker rmi image_id
import和load装载镜像
装载镜像有两种策略分别用于应对容器tar
包和镜像tar
包
# 第一种方式应对容器文件tar包的导入
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
# example
docker import myngin4_container.tar myngin4_image:1.0
# 第二种方式应对镜像tar包的导入
docker load [OPTIONS] file
# example
docker load -i hello_image.tar # 这部分不需要打标签的原因是打包之前的镜像就有标签
save打包镜像为tar包
docker save hello-world -o hello_image.tar
inspect观察镜像
docker inspect
能够返回镜像或者容器的底层信息,包括ip,cmd、分层信息等等。
docker inspect image_name:tag
docker inspect image_id
history查看镜像构建历史
docker history IMAGE
-q # quiet output, only image id
-H # human readable format
--format json # print output as json
build搭建镜像
docker build --no-cache -t [image_name:tag] ./ -f ./Dockfile
docker build --no-cache -t [image_name:tag] .
-q # 不打印构建过程
容器LXC(linux container)
每个容器有独有的container_name
和独有的container_id
。所以很多命令可以通过容器id
代替容器name
。
create创建容器
基于镜像image_name:tag
创建一个容器名为container_name
的容器。有两种方式docker create
和docker run
。docker run
的作用是创建一个容器并运行它;docker create
只创建容器,而不运行.
# /bin/bash是command
docker run -dit --name=container_name image_name:tag /bin/bash
-d # 后台运行
-i # 交互式响应
-t # 伪终端启动
docker create -it --name container_name image_name:tag
rename重命名容器
docker rename mynginx new_name
ps查看容器
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器,包括未运行的
-q # 只打印容器id
-l # 显示最近创建的容器
-s # 显示文件容量大小
run和exec执行特定命令
# 如果在创建容器的时候,没有执行任何命令则可以通过exec去执行一条指令,这只是一种用法
docker run -d --name=container_name image_name:tag # 无执行命令
docker exec -it mynginx2 /bin/bash # 启动一个/bin/bash伪终端
此时的abcdefg是hostname
start启动容器
docker start mynginx2
restart重启容器
docker restart mynginx2 # 容器关闭了可以进行重启
stop停止容器
docker stop mynginx2 # 停止运行中的容器
退出容器
exit
rm删除容器
docker rm container_name
docker rm -f container_name # 强制删除容器
-v # 移除和容器相关匿名卷
export导出容器文件为tar包
# 注意这条命令将容器的文件系统导出到一个tar包,在导入时只能使用docker import导入容器文件为镜像
docker export myngin4 -o myngin4_container.jar
inspect观察容器或者镜像
能够查看容器的一些底层配置信息。
docker inspect container_name
docekr inspect container_id
cp容器和宿主机间复制文件
# 容器向宿主机复制文件
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
# example
docker cp myniginx:/home/share /home/share
# 宿主机向容器复制文件
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
docker cp /home/share myniginx:/home/share
logs查看容器日志
docker logs [OPTION] container
docker logs mynginx
-f # follows跟随打印
-t # 显示时间戳
-n # 显示多少行
--since 1h30m5s # 从1h10min前开始打印日志
--until 1h30m5s # 打印日志直到1h10min前
top监控容器资源
可以查看容器的运行的进程ID以及进程组ID
docker top container
diff查看容器文件系统的改动
docker diff mynginx
update更新容器参数
docker update --cpu-period 10 # 限制CPU完全公平调度周期
docker update --cpu-shares int # 指定CPU份额
--cpus 2 # 指定CPU的数量为2
--memory 1G # 指定内存为1G
commit提交命令
docker commit container_name image:tag # 提交镜像
-a # 指定作者
-m # 提交描述
-c # 应用dokerfile到创建的镜像
数据持久化
创建容器的过程中,难免会遇到数据需要持久化,此时就需要挂载数据卷或者挂载宿主机目录
volume数据卷
数据卷挂载时,会将容器内内容,同步到数据卷中,如果数据卷中有内容,则会被隐藏
docker volume create volume-name # 创建数据卷,一般会挂载到/var/lib/docker/volumes
docker volume ls # 查看所有数据卷
docker volume rm volume-name # 删除数据卷
docker volume inspect volume-name # 观察数据卷
挂载宿主机目录
挂载宿主机目录时,如果容器内目录有内容,而宿主机目录中内容为空;挂载后会发生,容器内目录被隐藏的情况。
-v /nice:/nice
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~