Docker基本命令

docker基本命令

docker对象包括镜像和容器

info查看docker信息

能够查看的信息包括注册中心信息、docker源信息、容器数目、docker服务器、客户端信息等。

docker info # 可以用来查看注册中心信息以及docker源的信息

img

镜像Image

IMAGE IDREPOSITORY:TAG唯一标识一个镜像

images查看镜像

docker images # 查看当前主机的本地镜像库

img

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

img

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 # 不打印构建过程

img

容器LXC(linux container)

每个容器有独有的container_name和独有的container_id。所以很多命令可以通过容器id代替容器name

create创建容器

基于镜像image_name:tag创建一个容器名为container_name的容器。有两种方式docker createdocker rundocker 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 # 显示文件容量大小

img

run和exec执行特定命令

# 如果在创建容器的时候,没有执行任何命令则可以通过exec去执行一条指令,这只是一种用法
docker run -d --name=container_name image_name:tag # 无执行命令
docker exec -it mynginx2 /bin/bash # 启动一个/bin/bash伪终端

此时的abcdefg是hostname

img

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

img

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
posted @   LemHou  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示