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 中国大陆许可协议进行许可。许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?