常用命令

常用命令

帮助命令
docker version #版本信息
docker info #docker的系统信息,包括镜像和容器的数量
docker 命令 --help #docker命令帮助

官方命令文档: https://docs.docker.com/reference/

镜像命令

docker images 查看本地主机上的镜像

[root@jinpengyong ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    feb5d9fea6a5   7 weeks ago   13.3kB
仓库           标签       id             创建时间       大小

#可选项
Options:
  -a, --all             #列出所有镜像
  -q, --quiet           #只显示镜像id

docker search 搜索镜像

[root@jinpengyong ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11686     [OK]       
mariadb                           MariaDB Server is a high performing open sou…   4453      [OK]       
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   868                  [OK]

#可选项,通过收藏过滤
--filter=STARS=3000 #搜索出的镜像收藏>=3000

docker pull 下载

#下载镜像 docker pull 镜像名[:tag] 不写tag就是latest最新
[root@jinpengyong ~]# docker pull mysql
[root@jinpengyong ~]# docker pull mysql:5.7 #指定版本下载

docker rmi 删除

[root@jinpengyong ~]# docker rmi -f 镜像id 镜像id #根据镜像id删除,可以多个
[root@jinpengyong ~]# docker rmi -f $(docker images -aq) #删除所有,根据括号里查出的结果删除
容器命令

有了镜像才能创建容器,下载一个centos镜像来学习 。

docker pull centos

新建容器并启动

docker run [可选参数] image
#参数说明
--name 自定义容器名 #容器名字,用来区分容器
-d	          #后台运行
-it	          #交互方式运行,进入容器查看内容
-p            #小写p指定容器端口
	-p 主机端口:容器端口(常用)
	-p 容器端口
	容器端口
-P            #大写p 随机指定端口


#测试,启动并进入容器 
[root@jinpengyong ~]# docker run -it centos /bin/bash
[root@07f6ca15bbb3 /]# 

#查看容器内的centos
[root@07f6ca15bbb3 /]# ls
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr

#退出容器,回到主机
[root@07f6ca15bbb3 /]# exit
exit

列出所有运行中的容器

#docker ps	查看运行中的容
-a	  #查看正在运行的+ 曾经运行过的容器
-n=?  #显示最近创建的容器,n代表个数
-q    #只显示容器的编号 

退出容器

exit	#容器停止并退出
Ctrl+P+Q #容器不停止退出

删除容器

docker rm 容器id				#删除指定容器,不能删除正在运行的容器,如果要强制删除,rm -f
docker rm -f $(docker ps -aq)	#删除所有容器
docker ps -a -q|xargs docker rm #删除所有容器

启动和停止容器

docker start 容器id		#启动容器
docker restart 容器id		#重启容器
docer stop 容器id			#停止正在运行的容器
docker kill 容器id		#强制停止当前容器
其他常用命令

后台启动容器

# 命令 docker run -d 镜像名
docker run -d centos

# 问题:docker ps,发现centos停止了

# 常见的坑:docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
# nginx 容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

查看日志

docker logs  -f -t --tail 容器 #没有日志

# 自己编写一段shell脚本
docker run -d centos /bin/bash -c "while true;do echo jpy;sleep 1;done"

# 日志
# -f #日志带上时间
# -tail num #日志条数
docker logs -tf 5ad837b769ad #小时所有日志
docker logs -tf --tail 10 5ad837b769ad #显示10条日志

查看容器中进程信息

docker top 容器id

查看镜像的元数据

docker inspect 容器id

进入当前正在运行的容器

# 通常容器都是后台运行,有时需进入容器,修改一些配置

# 方式1 命令
docker exec -it 容器id /bin/bash

#方式2 
docker attach 容器id 

# docker exec 进入容器后开启一个新的终端,可以在里面操作(常用)
# docker attach 进入容器正在执行的终端,不会启动新的进程

将容器内文件拷贝到本机

docker cp 容器id:文件绝对路径 本机路径
docker cp 123:/home/test.java /home # 容器home里的test.java拷贝到本机home下
安装nginx
docker search nginx
docker pull nginx #下载镜像
#容器的80端口映射到本机的3344端口 
docker run -d --name nginx01 -p 3344:80 nginx

#测试
curl localhost:3344

#进入容器
docker exec -it 容器id /bin/bash
whereis nginx
cd /etc/nginx # nginx文件

#停止容器后,3344就无法访问了
docker stop 容器id

问题:要改动nginx配置文件,必须进入容器内。麻烦!要是可以在容器外部提供一个映射路径,达到在容器外部修改文件,容器内部就可以自动修改?-v 数据卷技术

安装tomcat
# 官方
docker run -it --rm tomcat:9.0 # rm 用完即删,一般用来测试
docker ps -a # 发现并没有tomat,就说明--rm是用完即删

#正式安装
docker pull tomcat	#下载
docker run -d -p 3355:8080 --name tomcat01 tomcat:9.0 #运行
测试访问时,404
docker exec -it 容器id或名字 /bin/bash
cd webapps 发现里面是空的,所以才是404,这是阿里云镜像的原因,默认是最小的镜像,把不必要的剔除了
解决:在webapps统计目录下有webapps.dist文件夹,将所有webapps.dist里文件拷贝到webapps里

问题:每次部署项目,都要进入容器,麻烦!要是可以在外部提供一个映射,webapps,在外部放置项目,就自动同步到容器内部就好了

安装es和kibana
# --net somenetwork 网络配置
#启动
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:版本号
#启动后,linux变得很卡 elasticsearch很占内存
docker stats #查看cpu状态 es占内存很大

#关闭es,增加内存限制,修改配置文件 -e 环境修改
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:版本号
可视化

portainer(暂用)

docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
  • 访问测试 curl localhost:8088

  • 查看界面:外网ip:8088

  • 选择local--》connect

Rancher(CI/CD再用)

posted @   jpy  阅读(28)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示