Docker常用命令

Docker常用命令

BusyBox是一个集成了300多个最长用的LINUX命令和工具的软件。

–Docker客户端与帮助

docker command

[root@localhost harbor]# docker container
Usage: docker container COMMAND
Manage containers
Commands:
attach 进入容器
commit 以一个运行中的容器为基础镜像创建一个新镜像
cp 在容器和本地文件之间拷贝文件或文件
create 创建一个新的容器
diff 查看一个容器的文件或目录的变化
exec 在一个运行中的容器上执行一个命令
export 以一个 tar 包的形式导出一个容器的文件系统
inspect 显示一个或者多个容器的详情
kill 杀掉一个或多个运行中的容器
logs 获取某个容器的日志
ls 列出容器
pause 暂停一个或多个容器的所有进程
port 列出容器的端口映射或一个特定的映射
prune 删除所有停止的容器
rename 重命名一个容器
restart 重启一个或多个容器
rm 删除一个或多个容器
run 在一个新容器中执行一个命令
start 启动一个或多个容器
stats 展示一个容器的资源使用情况
stop 停止一个或多个容器
top 展示一个容器正在运行的进程
unpause 暂停一个或多个容器的所有进程
update 更新一个或多个容器的配置
wait 锁定一个或多个容器,然后打印出他们的退出码

创建容器常用命令选项
-i 交互式
-t 分配一个伪终端,是为了让容器启动后有一个前台进程,因为任何一个后台进程都需要一个前台进程才能跑起来。
-d 容器在后台运行
-e 设置环境变量
-p 发布容器端口到主机
-P 大 P 后面不用接端口,是把容器 EXPOSE 的端口到宿主机的随机端口,EXPOSE 是 Dockerfile里面定义的
-h 容器主机名,默认是一个随机的字符串
-ip 指定容器 IP,只能用于自定义网络
-v 绑定挂载一个卷
–name 容器的名称,默认是一个随机字符串
-network 连接容器到一个网络,比如我们自定义一个 bridege
-mount 将宿主机的数据挂在到容器
-restart always 容器退出时,会不断的尝试重启
管理容器常用选项
ls 列出容器
inspect 查看一个或多个容器详细信息
exec 在运行容器中执行命令
commit 创建一个新镜像来自一个容器
cp 拷贝文件/文件夹到一个容器
logs 获取一个容器日志
port 列出或指定容器端口映射
top 显示一个容器运行的进程
stats 显示容器资源使用统计
stop/start 停止/启动一个或多个容器
rm 删除一个或多个容器

–启动一个容器
docker pull busybox:1.28.3
docker images
–启动容器
#docker run -it busybox:1.28.3 /bin/sh
–启动已停止运行的容器
docker ps
docker ps -l
docker start 580cbd2fce63
–后台运行容器
$ docker run -itd --name linuxtools busybox:1.28.3 /bin/sh
–停止容器
docker stop 124c050bdf7a
–重启容器
docker restart 124c050bdf7a
–进入容器
docker attach
[root@edu-node03 soft]# docker attach linuxtools

docker exec:
[root@edu-node03 soft]# docker start linuxtools
[root@edu-node03 soft]# docker exec -it linuxtools /bin/sh

–导出和导入容器
$ docker export 124c050bdf7a > busybox.1.28.3.tar
$ cat busybox.1.28.3.tar | docker import - edu/busybox.1.28.3
docker save busybox:1.28.3 > busybox.1.28.3.tar
docker load < busybox.1.28.3.tar
–删除容器
docker ps
docker rm 580cbd2fce63
docker rm -f 580cbd2fce63
docker container prune
–查看容器日志
docker logs -f 124c050bdf7a
–查看容器的进程
docker top linuxtools
–检查容器底层信息
docker inspect linuxtools
–查看端口映射情况
$ docker port 124c050bdf7a
5000/tcp -> 0.0.0.0:5000

—容器镜像地址
https://hub.docker.com/
https://hub.docker.com/search
https://hub.docker.com/search?q=nginx
$ docker search nginx
docker pull nginx:latest
docker pull nginx:1.23.0
docker pull nginx:1.22.0
docker images
docker images -a
$ docker rmi -f nginx:1.22.0
#docker run -it nginx:1.22.0 /bin/bash
#echo “edu” >> /usr/share/nginx/html/edu.html
#docker commit -m=“web html update” -a=“edu” 16ad5a22dc89 nginx:1.23.0
docker images

docker run -it nginx:1.23.0 /bin/bash
cat /usr/share/nginx/html/edu.html
edu
docker tag daf7163cdf3f nginx:20220707

—docker镜像应用
案例 1:
创建一个容器,容器名为 eduweb_8001,容器主机名 eduweb_8001,容器会自动启动,
访问宿主机的 8001端口即可访问容器 nginx,用镜像 nginx:latest
docker run -d --name eduweb_8001 -h eduweb_8001 -p 8001:80 nginx:1.22.0

–restart always
重启策略如下:
no,默认策略,容器退出时,不重启容器
on-failure,在容器非正常退出时(退出状态非0),才会不重启容器
on-failure:3,在容器非正常退出时,重启容器,且最多重启3次
always,在容器退出时,总是重启容器
unless-stopped,在容器退出时,总是重启容器,但是不考虑在docker守护进程启动时,就已经停止了容器

验证并查看
[root@edu-node03 ~]# docker ps -ls
docker exec -it 30abe92bb03a /bin/bash
docker exec -it eduweb_8001 /bin/bash
docker inspect 30abe92bb03a

访问服务
http://192.168.127.66:8001/

–容器资源限制
01.常用选项
-m,–memory:容器可以使用的最大内存量
–memory-swap:允许交换到磁盘的内存量
–memory-swappiness :设置容器使用 SWAP分区的百分比,也可以设置为不使用。
-1是不限制,无限制使用 swap,
1是不使用,也就是 swap和memory 的值设置成一样。
不设置 swap,默认是可以使用物理内存的 2 倍。
–oom-kill-disable :宿主机有 om 机制,在内存不足时,会找出使用内存最多的内存并杀掉。
–cpus:使用 cpu 的数量
–cpuset-cpus:设置容器可以使用宿主机的哪几个 cpu,比如 0-3,0,1
–cpu-shares:CPU共享(相对权重)

案例 2.1:创建一个容器,内存限制为 200M,swap可以使用 100M,om机制禁用。
docker run -d --name eduweb_8002 -h eduweb_8002 -m 200m --memory-swap=‘300m’ --restart always --oom-kill-disable -p 8002:80 nginx:latest
docker ps
访问测试:http://192.168.127.66:8002/
查看资源使用情况:
docker stats 8365b6b75ae6

案例 2.2:创建一个容器,cpu限制使用 1.5
docker run -d --name eduweb_8003 -h eduweb_8003 --cpus=“1.5” -p 8003:80 nginx:latest

如果设置 cpus=2,则容器可能会跑到 200%。
–cpus=:
限制容器可以使用多少 cpu,可以设置为小数,例如可以设置–cpus=1.5。
该选项代表使用 cpu的百分比,而不是具体的个数
例如主机一共有四个 cpu,设–cpus=2,不代表有两个 cpu 被 100%占用,另外两个完全空闲,可能四个 cpu各被占用 50%

访问测试:
http://192.168.127.66:8003/

例3:创建一个容器,内存和CPU限制使用
docker run -d --name eduweb_8004 -h eduweb_8004 -m 200m --memory-swap=‘300m’ --restart always --oom-kill-disable --cpus=“1.5” -p 8004:80 nginx

docker ps
docker stats eduweb_8004

访问测试:
http://192.168.127.66:8004/

----------容器文件上传与下载

cp 拷贝文件/文件夹到一个容器
将宿主机的文件拷贝到容器
docker exec -it eduweb_8004 mkdir -p /usr/share/nginx/html/file/
docker cp /data/soft/docker-20.10.16.tgz eduweb_8004:/usr/share/nginx/html/file/

访问测试:
http://192.168.127.66:8004/file/docker-20.10.16.tgz

可以从容器中把文件拷到宿主机(eduweb_8004)
docker cp eduweb_8004:/usr/share/nginx/html/file/docker-20.10.16.tgz /tmp/
ls -ls /tmp
63448 -rw-r–r–. 1 root root 64969189 May 23 22:33 docker-20.10.16.tgz

--------容器其他操作

查看容器访问日志
docker logs bfe6bfbf9b3b
或者主机名:
docker logs eduweb_8004

port 列出或指定容器端口映射
docker port eduweb_8004
80/tcp -> 0.0.0.0:8004

top 显示一个容器运行的进程
docker top eduweb_8004

stats 显示容器资源使用统计
docker stats eduweb_8004

stop/start 停止/启动一个或多个容器
docker stop eduweb_8004
docker start eduweb_8004
docker update更新容器配置
docker update eduweb_8004 -m 200m --memory-swap=‘300m’

重命名容器
docker rename 9ce9653eb713 eduweb8004
docker ps

rm 删除一个或多个容器/删除停止的容器,-f 强制删除容器
docker rm eduweb8004 -f
docker ps
查看已经删除

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

king01299

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值