docker常用命令

镜像基础命令:

docker version                    查看docker版本

docker search --automated -s 3 nginx     按星级搜索镜像

docker pull ubuntu:14.04             获取镜像

docker images                    查看镜像信息

docker inspect                   获取镜像详细信息

docker history  nginx              查看镜像历史

docker tag nginx:latest mynginx:latest   给镜像添加一个新标签

docker rmi 镜像名称或ID   -f参数强制    删除镜像

docker commit -m “add a new file” -a  "zhang san"  容器ID  test:0.1          基于已有的容器创建镜像

dcoker save -o ubuntu_14.04.tar ubuntu:14.04                             存出镜像,导出为文件

docker load  --input ubuntu_14.04.tar  或  docker load < ubuntu_14.04.tar        载入镜像

docker push 仓库路径               上传镜像

容器基础命令:

docker create  -it ubuntu:latest                新建容器不启动

docker start ubuntu                         启动容器

docker run -it ubuntu:14.04 /bin/echo "hello world"    新建并启动容器,运行命令后终止

docker run -it ubuntu:14.04 /bin/bash             新建并进入容器

exit退出容器终止   ctrl+q crtl+p退出容器不终止

docker exec -it 容器名称  /bin/bash               进入正在运行的容器

docker run -d centos:latest /bin/bash -c "命令"        新建容器运行命令但不终止,-d后台运行

docker logs 容器ID                           查看容器输出

docker  stop| start | restart | inspect 容器ID        停止启动重启查看详细信息

docker  export 容器ID > centos7.tar               导出容器

cat centos7.tar | docker import - centos:test         导入容器

docker rm 容器名或ID                          删除容器   -f参数强制

-P  随机映射端口  -p 指定映射端口

docker  run  -d  -P --name web-test001 httpd                         随机映射容器的80端口

docker  run  -d  -p 8000:80 --name web-test002 httpd                    宿主机8000端口映射容器80端口

docker  run  -d  -p 5000:5000  -v /opt/registry:/var/lib/registry registry     将容器内/var/lib/registry目录挂载到宿主机/opt/registry目录

:ro #只读,只能通过宿主机来操作文件,容器内部无法操作!

:rw #可读可写, 默认

docker  run  -d  -p 5000:5000  -v /opt/registry:/var/lib/registry:ro registry   将容器内/var/lib/registry目录挂载到宿主机/opt/registry目录,并且只能通过宿主机来操作文件,容器内部无法操作!

docker run -dit  -p  192.168.1.102:10112:22  -p  192.168.1.102:80:80 centos    将容器的22端口和80端口分别映射到宿主机192.168.1.102网卡的10112和80端口

docker  run  -d   -p  192.168.1.102::80  --name  webserver  centos:http     将容器的80端口映射到宿主机192.168.1.102网卡的随机端口,并定义一个容器名

docker  run  -d  -p  127.0.0.1:5000:5000/udp   --name  db4  commit:v1      将容器的5000/udp端口映射到宿主机127.0.0.1网卡的5000端口,并定义了一个容器名

docker  port  web-test001                                       查看容器当前映射的端口配置

docker build --no-cache -t "centos:httpv1" .       使用build命令构建镜像,点表示当前目录的dockerfile文件,--no-cache不使用缓存,-t定义名字标签

项目命令常用操作:

docker cp /www/runoob 96f7f14e99ab:/www/                   将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下

docker cp /www/runoob 96f7f14e99ab:/www                    将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www

docker cp  96f7f14e99ab:/www   /tmp/                    将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中

docker rm $(docker ps -a -q)        删除所有容器,-f参数强制

docker-compose up -d nginx         启动nginx容器

docker logs --tail=100 容器名       查看容器日志,-f参数实时监控

docker volume create 卷名           创建一个容器卷

docker volume rm 卷名              删除一个卷

docker volume ls                 查看所有容器卷

docker volume inspect  容器卷        查看指定容器卷信息

docker inspect 容器名              查看容器信息,主要用于查看卷映射信息

docker swarm join-token worker       查看加入woker的命令

docker swarm join-token manager       查看加入manager的命令

docker node ls                  查看swarm节点下的主机

docker  node  rm -f  节点ID        删除swarm其中一个节点,-f参数强制

docker swarm leave -f              解散swarm集群

docker swarm leave                节点加入新的集群时先执行这条命令

docker swarm leave --force          强制退出集群

docker network create -d overlay ov_net3 --subnet 172.19.0.0/24 --gateway 172.19.0.1  创建overlay网络

docker network connect 网络名 容器名     为容器重新指定网络

docker rename 原名 现名              修改容器名

docker image tag  原名:tag  现名:tag    修改镜像名

docker system df                  查看docker占用空间

docker system prune -a              清理无用镜像、缓存、挂载数据

启动容器时,控制容器日志大小和数量
# max-size 最大数值
# max-file 最大日志数
$ docker run -it --log-opt max-size=10m --log-opt max-file=3 redis
全局配置:
创建或修改文件 /etc/docker/daemon.json,并增加以下配置
{
"log-driver":"json-file",
"log-opts":{
"max-size" :"50m",
"max-file":"1"
}
}
随后重启 Docker 服务
systemctl daemon-reload
systemctl restart docker
已存在的容器需要重建生效。
docker rm -f redis 删除容器
docker-compose up -d --build redis 重新构建
docker stats 查看容器占用资源情况

有一些java容器长时间运行导致内存不足,通过添加deploy模块,限制容器的内存:

docker-compose限制容器内存使用:添加deploy模块:例如下:
order:
build:
context: "/data/java-service/order/"
dockerfile: "Dockerfile"
image: order:v1
container_name: "order"
ports:
- "18095:18095"
deploy:
resources:
limits:
cpus: "2.00"
memory: 1536M
reservations:
memory: 1228M
#env_file: /data/java-service/env_variables
restart: always
volumes:
- "/var/log/docker/order:/var/log/order"
- "/data/java-service/order/:/var/www/order/"
# 设置容器内用户权限为root
privileged: true
logging:
driver: "json-file"
options:
max-size: "500m"
environment:
- TZ=Asia/Shanghai
之后使用docker-compose --compatibility up -d order启动 注意需要添加--compatibility参数,否则报错或提示。

docker容器迁移的步骤:

1、先将容器导为镜像
docker commit -m “add a new file” -a "zhang san" 容器ID mysql:v2
2、再将刚刚的镜像导出为镜像文件
docker save -o mysql.tar mysql:v2
3、将容器映射的数据目录打包。
zip -r mysql.zip mysql
4、将zip包和导出的镜像tar文件迁移到另一台机器上
根据需求使用scp或其它命令
5、导入镜像到新机器。
docker load < mysql.tar
6、将zip包解压到和旧机器一样的位置
7、使用和旧机器一样的docker run 命令启动镜像。

 

本文作者:燚林

本文链接:https://www.cnblogs.com/lydongbk/p/17647916.html

版权声明:本作品采用本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。许可协议进行许可。

posted @   燚林  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Reol

作词 : Reol

fade away...do over again...

fade away...do over again...

歌い始めの一文字目 いつも迷ってる

歌い始めの一文字目 いつも迷ってる

どうせとりとめのないことだけど

伝わらなきゃもっと意味がない

どうしたってこんなに複雑なのに

どうしたってこんなに複雑なのに

噛み砕いてやらなきゃ伝わらない

ほら結局歌詞なんかどうだっていい

僕の音楽なんかこの世になくたっていいんだよ

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.

目の前 広がる現実世界がまた歪んだ

目の前 広がる現実世界がまた歪んだ

何度リセットしても

僕は僕以外の誰かには生まれ変われない

「そんなの知ってるよ」

気になるあの子の噂話も

シニカル標的は次の速報

麻痺しちゃってるこっからエスケープ

麻痺しちゃってるこっからエスケープ

遠く遠くまで行けるよ

安定なんてない 不安定な世界

安定なんてない 不安定な世界

安定なんてない きっと明日には忘れるよ

fade away...do over again...

fade away...do over again...

そうだ世界はどこかがいつも嘘くさい

そうだ世界はどこかがいつも嘘くさい

綺麗事だけじゃ大事な人たちすら守れない

くだらない 僕らみんなどこか狂ってるみたい

本当のことなんか全部神様も知らない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.