【Docker】常用命令
常见命令
Docker服务操作
systemctl status docker.service
systemctl start docker.service
systemctl restart docker.service
systemctl stop docker.service
Docker --help
- 查看docker帮助
docker --help
Docker version
- 查看docker版本号
docker version
Docker info
- 查看docker信息
docker info
镜像命令
Docker images
- 列出当前docker中所有的镜像
docker images (-aq)
一个镜像的名称:
REPOSITORY
+TAG
-q
:只显示镜像的ID
- 显示镜像的摘要信息
docker images --digests
- 显示镜像的完整信息
docker images --no-trunc
- 查询指定仓库和TAG的镜像ID
docker images | grep -w "jeecg-cloud-gateway" | grep -w "1.0.2" | awk '{print $3}'
Docker search
- 查询名称为tomcat的镜像
docker search tomcat
STARS
:相当于GITHUB中的星,STARS越高说明镜像越好
- 查询STARS数大于30的镜像
docker search --filter=stars=30 tomcat
docker search -s 30 tomcat
Docker pull
- 拉取nginx镜像
docker pull nginx
镜像名称后面可以通过
:
指定版本号,如不指定,默认拉取最新的
Docker rmi
- 删除指定镜像
docker rmi nginx:latest
如果待删除的镜像已经有容器则会报异常,此时可以指定
-f
参数进行强制删除
如果要一次性删除多个镜像,则可以在rmi后面填写多个镜像名称,以空格隔开
- 一次性删除全部镜像
docker rmi -f $(docker images -q)
该命令会先运行
$()
中的命令,结果作为外面命令的参数
Docker build
- 根据Dockerfile创建镜像
docker build -t sbm-image /opt/sbm
-t sbm-image
:指定创建出来的镜像名称
/opt/sbm
:包含Dockerfile的目录
docker build -f /opt/sbm/Dockfile.debug -t sbm-image
-t sbm-image
:指定创建出来的镜像名称
-f /opt/sbm/Dockfile.debug
:指定Dockerfile文件
docker build -f uker-medicine-site/Dockerfile.medicine -t a:develop .
-t a:develop
:指定创建出来的镜像名称
-f uker-medicine-site/Dockerfile.medicine
: 指定Dockerfile文件为当前目录下面的uker-medicine-site目录下面的Dockerfile.medicine
容器命令
Docker run
- 启动tomcat容器
docker run -it -d --name my-tomcat -e LANG=en_US.UTF-8 -p 9090:8080 8973f493aa0a
-d
:让容器在后台运行,其实就是一个进程
-it
:交互方式启动
--name
:给容器指定一个名字
-e LANG=en_US.UTF-8
:指定容器支持中文
-p
:将容器的端口映射到宿主机的端口,可添加多个端口映射,e.g.-p 9090:8080 -p 9091:8081
8973f493aa0a
:tomcat镜像的ID
- 创建容器并限制cpu和内存
docker run -d -it --cpu-shares 10 --memory 100M --name my-tomcat2 -p 8081:8080 tomcat
--cpu-shares 10
:CPU权重10%
--memory 100M
:内存限制
Docker ps
- 列出所有正在运行的容器
docker ps (-q)
STATUS
:UP
表示容器已启动
-q
:表示只显示镜像ID
- 显示最近创建的所有容器
docker ps -a
- 显示最近创建的一个容器
docker ps -l
- 显示最新创建的n个容器
docker ps -n 3
- 查看包含某个指定名称的容器
docker ps | grep nginx
Docker start
- 启动所有的容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
Docker stop
- 关闭所有的容器
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
Docker rename
- 容器重命名
docker rename my-redis redis5.0.6
Docker update
- 设置容器开机启动
docker update --restart=always 容器ID
always
:无论退出状态是如何,都重启容器
no
:容器退出时,不重启容器
on-failure
:Docker将尝试重新启动容器的最大次数,比如:docker run --restart=on-failure:10 redis
,表示最多启动redis容器10次。
Docker rm
- 删除单个容器
docker rm 容器ID
- 一次性删除全部容器
docker rm -f $(docker ps -qa)
Docker exec
- 进入容器
docker exec -it 容器ID /bin/bash
docker exec -it 容器ID sh
Docker status
- 查看容器的资源使用情况
docker stats 容器ID
Docker logs
- 查看容器日志
docker logs 容器ID
Docker inspect
- 查看容器详情信息
docker inspect 容器ID
Docker commit
- 根据容器生成镜像
docker commit 容器名称 容器镜像名称
Docker copy
- Docker容器向宿主机传送文件
docker cp 10704c9eb7bb:/root/test.text /home/vagrant/test.txt
10704c9eb7bb
:容器ID
/root/test.text
:Docker容器内的文件
/home/vagrant/test.txt
:宿主机文件
- 宿主机向Docker容器传送文件
docker cp /home/vagrant/test.txt 10704c9eb7bb:/root/test.text
/home/vagrant/test.txt
:宿主机文件
10704c9eb7bb
:容器ID
/root/test.text
:Docker容器内的文件
其他命令
Docker login
- 登录harbor镜像仓库
docker login 192.168.247.130:8088 -u admin -p Harbor12345
192.168.247.130:8088
:镜像仓库地址
admin
:账号
Harbor12345
:密码
- 登录阿里云Docker Registry
docker login --username=daijiong@1192972714412550 registry.cn-hangzhou.aliyuncs.com
daijiong@1192972714412550
:阿里云子账号
registry.cn-hangzhou.aliyuncs.com
:阿里云Docker Registry地址
- 将镜像推送到阿里云Docker Registry
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/successhr/base-image:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/successhr/base-image:[镜像版本号]
- 从阿里云Docker Registry中拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/successhr/base-image:[镜像版本号]
评论区