当前位置: 首页 > news >正文

docker相关命令

常用命令

#创建并启动
docker-compose up -d # 启动之后就可以通过浏览器访问了
#停止并删除
docker-compose down
#重启
docker-compose restart
#停止
docker-compose stop
#启动
docker-compose start
docker search 
 #搜索镜像(只搜索官方仓库的,官方仓库地址:hub.docker.com)
 # docker search tomcat
 # docker search apache
 # 我们拉取的镜像tomcat\apache等名字很短对吧,这都是官方仓库中的官方镜像,官方仓库中支持用
户上传自己封装的镜像,用户镜像和官方镜像的差别在名字上面,比如我们可以去docker官方去注册一个账
号,用户自己的镜像前面都会有作者的用户名或者用户所在组织的名字,比如jaden/nginx、
jaden/tomcat等。
 
docker images 
 #查看本地镜像列表,image就是图像、镜像的意思
 # 本地有的镜像,就不要再去下载了,而且可以将本地镜像导出来分享给别人
 
docker pull   
 #下载镜像,拉取镜像
 # docker pull tomcat:latest
 # docker images
 
docker push   
 #上传镜像,推送镜像,推到官方仓库,推送不是那么简单的,不然早就满了,需要在本地登录一下官方
账号才能推,后面再演示
 
docker rmi     
 #删除镜像,rm image的意思,直接rm不加i表示要删除容器,可以通过名称加版本来删除,或者直接通
过镜像id值来删除
 #docker rmi tomcat:latest 或者 docker rmi imageid值
 #可以同时删除多个镜像:docker rmi tomcat:latest tomcat:jre17-temurin-jammy
 #如果这个镜像处于运行状态的是删除不了的,比如有容器在使用这个镜像,就不能删除镜像,比如
docker rmi nginx:1.16会报错
 #查看镜像的运行状态docker container ls,其实这是查看容器的状态,但是可以看到哪些镜像被使
用了
 
docker save   
 #导出镜像(压缩包) docker save 镜像名称:版本 -o docker_nginx1.20.tar.gz
 #docker save nginx:1.16 -o docker.nginx1.16.tar.gz
    #ls 就看到了 docker.nginx1.16.tar.gz
 
docker load   
 #导入镜像 docker load -i docker_nginx1.20.tar.gz,会自动解压并导入到docker服务中



#docker 常见命令
docker run 运行一个新容器
docker ps === docker container ls #参数: 默认之显示up状态的容器,-a查看所有容器,或者--
all
docker stop   停止容器  #例子 docker stop 容器id或者容器名字
docker kill   杀掉容器  #强制关闭容器,尽量不要用,很容易就启动不了了
docker start   启动容器  #例子 docker start 容器id或者容器名字
docker restart 重启重启  #例子 docker restart 容器id或者容器名字
docker rm     删除容器  #例子 docker rm 容器id或者容器名字,同时删除多个,就空格隔开,处
于up状态是不能直接删除的,强制删除是可以删除up状态的容器的,docker rm f 容器名称或者id


docker rm -f `docker ps -a -q` #删除所有容器,-q是只显示容器id,反引号中的指令优先执行
docker top   查看容器内的进程  #例子docker top 容器id或者容器名字
docker stats 查看容器的资源占用情况
docker exec   进入容器  #例子: docker exec -it 容器id或者容器名字
 # 直接交互指令:docker exec -it 76738703b7b2 ls # 执行ls指令
 # 进入终端:docker exec -it 76738703b7b2 /bin/bash或者/bin/sh #/bin/bash打开一
个终端窗口,exit指令退出终端,但是docker容器内容一般不会安装额外的软件,所以导致大量的指令是用
不了的,比如ifconfig、ps、ip addr等
docker inspect -f '{{.Name}} => {{.NetworkSettings.IPAddress }}' $(docker ps -
aq) #可以查看所有容器的ip地址的,容器的ip地址是从`172.17.0.1`开始分的。docker容器类似于一个
微型的虚拟机,它占用的都是宿主机(物理机)的资源。在物理机上是可以看到容器所运行的程序的。每个容器
都有自己的ip地址。
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}
{{.IPAddress}}{{end}}' $(docker ps -aq) | grep "容器名称或者id"
# curl -I 加网址,可以看到http响应数据
┌──(root㉿jadenkali)-[/home/jaden]
└─# curl -I http://172.17.0.4
HTTP/1.1 200 OK
Server: nginx/1.23.4
# netstat -lntup可以看到给docker的端口映射
# docker run -d -p 80:80 nginx #-p 80:80,端口映射,表示宿主机的80端口映射到了nginx容
器的80端口。

docker run 参数

-d #放后台运行
-p 端口映射 #例子: -p 宿主机端口:容器端口
--name 指定容器的名字 # docker run -it --name jaden 镜像id或者名称
--link 关联另一个容器 # 了解即可
-e MYSQL_ROOT_PASSWORD #设置容器的一些属性,了解一下即可
-it #是给运行起来的这个容器分配一个终端,就可以进入到容器内部操作了
# 后面想部署什么,直接网上搜索即可。

制作docker 镜像 如何上传

docker pull debian:latest
docker run -it --name jaden_nginx -p 90:80 debian:latest
# 进入容器
docker exec -it jaden_debian /bin/bash
# 安装nginx
apt update # 更新apt缓存
apt install nginx -y  # 安装nginx
nginx -v # 查看nginx版本,安装好了  
# ip addr
# apt install procps # 安装ps指令
# ps -ef
nginx #启动nginx,systemctl是没有的,没有安装这个指令
exit
# 打包之前做好先停止容器
docker stop jaden_debian
docker commit jaden_nginx syrjaden/debian_nginx:v1  # 根据名字或者id都可以提交,后面加
个镜像名称和版本,syrjaden是docker仓库用户名
#上传到官方仓库
docker login  #登录官方仓库
#docker tag debian_nginx:v2 syrjaden/debian_nginx:v2 # 这是改名字,如果名称不冲突就不
用改名字
docker push syrjaden/debian_nginx:v2  # 直接push即可
# 比如前面我们启动的wordpress项目,需要启动两个容器才行,有

docker-compose是批量管理docker容器的工具

# 比如前面我们启动的wordpress项目,需要启动两个容器才行,有时候就是这样,需要同时启动多个容器来
完成你想要做的事情,但是到底启动多少个容器呢?比如wordpress那个,我们记不住,换一个机器不看笔记
很难起来,有了docker-compose就可以解决这个问题了。
#centos7安装docker-compose,我们前面已经安装了,不需要再次安装了
yum install epel-release.noarch -y
yum install docker-compose -y
#kali安装docker-compose
apt install docker-compose -y
# 查看版本
docker-compose -v


#启动容器的时候,如果加上了--restart=always,那么重启服务之后,这个容器会自动启动
docker run -it -d --restart=always nginx:1.16  # 实现了开机自启动的效果
http://www.dtcms.com/a/118034.html

相关文章:

  • Vue3实战三、Axios封装结合mock数据、Vite跨域及环境变量配置
  • Linux-CentOS-7—— 配置静态IP地址
  • PyTorch 笔记
  • Next.js + SQLite 项目 Docker 生产环境部署方案
  • 从数据到成果:R 语言在气象水文全流程中的关键技术应用
  • linux查看当前文件夹下面文件大小
  • 队列➕宽搜(BFS)算法的应用
  • Invalid bound statement (not found)
  • OceanBase V4.3.5 上线全文索引功能,让数据检索更高效
  • 【UE5 C++课程系列笔记】34——结构体与Json的相互转化
  • VBA第三十九期 VBA自动把工作表转换成PPT
  • CExercise_06_1指针和数组_1查找数组的最大值和最小值
  • 数据库——Redis
  • 使用 `keytool` 生成 SSL 证书密钥库
  • 【DeepSeek工具教程】IntersectionObserver+API分页懒加载实现指南之React项目1
  • 【KMP】P7114 [NOIP2020] 字符串匹配|省选-
  • 蓝桥杯 封闭图形个数 刷题笔记
  • Set 集合
  • Allegro软件自带的封装库
  • 目录穿越 + pickle反序列化 -- xyctf Signin WP
  • 智能DNS解析:解决高防IP地区访问异常的实战指南
  • Spring Boot 自定义 Redis Starter 开发指南(附动态 TTL 实现)
  • 【MATLAB】将数据保存在mat文件中 save/load/matfile
  • 力扣HOT100之链表:142. 环形链表 II
  • Spring MVC 返回 JSON 视图的方式及对比(6种)
  • [Linux系统编程]多线程
  • 从ERTS会议学习Scade的发展
  • x-cmd install | Slumber - 告别繁琐,拥抱高效的终端 HTTP 客户端
  • 软件工程第三章习题
  • 【蓝桥杯】Python大学A组第十五届省赛