docker常用容器命令

首先说下容器:

它是指当docker运行镜像时,创建了一个隔离环境,称之为 容器

这种方式优点:可以开启多个服务,服务之前是互相隔离的(比如:在一台服务器上可以开启多个mysql,可以是多个不同版本或者多个相同版本,这样如果多个项目依赖不同mysql版本,也可以部署在同一台服务器上)。

1、创建并运行一个容器

此命令会检查镜像是否存在,不存在会先远程下载,下载完之后,运行。

复制代码
docker run -d --name 自定义容器名称 -p 外网访问的端口:实际端口 运行镜像的名字

解释:
-d:后台运行;
--name: 给容器起一个名字,需要唯一;
-p 外网访问端口:容器实际的端口

运行镜像名称:镜像名称一般由:[repository]:[tag]组成,其中repository就是镜像名称,tag是镜像版本号(可以通过 docker images来查下某个镜像名称及tag)。

2、重启、停止容器进程

复制代码
// 启动容器进程,注意与run的区别
docker start 容器id
// 重启容器进程
docker restart 容器id
// 停止当前正在运行的容器进程
docker stop 容器id 
// 强制停止当前容器进程
docker kill 容器id

注:
(1)docker stop 是指停止容器进程,容器还在!不是把容器给删除掉了!
(2)docker run xxx 是指创建一个容器,而且每次run 都会创建一个新容器;
(3)docker start xxx 是指启动已经停掉的容器进程;
(4)说白了,docker start/stop/restart/kill 这几个命令是在docker run xxx 之后才会有的。

3、查看容器的进程状态

复制代码
docker ps 

4、删除容器

复制代码
// 删除有一个容器
docker rm 容器id或者容器名称

// 如果当前容器正在运行,可以强制删除
docker rm -f 容器id或者容器名称

// 删除所有的容器
docker rm -f $(docker ps -aq)

5、一张图来总结上边介绍的命令:

6、小例子 - 下载nginx

下载、运行nginx

复制代码
// 下载nginx
docker pull nginx

// 运行nginx
docker run -d --name nginx -p 3782:80

查看镜像及后台运行nginx:

在物理机访问虚拟机上docker nginx容器服务:

注意:
外界只能通过3782端口访问nginx,如果直接通过80端口是访问不到的!!!

7、进入nginx容器中

容器中会有自己独立的文件系统,当然只是模拟的。

复制代码
docker exec -it nginx /bin/bash

解释:
-it:可交互的终端;
nginx:容器名称;
/bin/bash:进入容器之后使用什么命令进行交互(这里使用命令行)。

退出内部容器:exit

8、把本地镜像打包成一个tar文件

复制代码
// 镜像名称可以使用docker imags来查看
// -o 输出到哪一个文件,output
docker save -o 镜像名称.tar

9、加载本地tar镜像包

加载本地tar镜像包,相当于docker pull xxx 下载一个镜像,只不过这个镜像已经下载完了且已经打包成一个tar文件了,现在需要加载到docker 中。

复制代码
docker load -i xxx.tar

10、打印日志

复制代码
docker logs 镜像名称
相关推荐
RealPluto16 分钟前
Spring AOP 失效排查
java·spring
码路飞41 分钟前
热榜全是 OpenClaw,但我用 50 行 Python 就造了个桌面 AI Agent 🤖
java·javascript
Nyarlathotep01131 小时前
LinkedList源码分析
java·后端
用户8307196840821 小时前
Java 告别繁琐数据统计代码!MySQL 8 窗口函数真香
java·sql·mysql
带刺的坐椅2 小时前
SolonCode v0.0.20 发布 - 编程智能体(新增子代理和浏览器能力)
java·ai·agent·solon·solon-ai·claude-code·openclaw
会员源码网3 小时前
数字格式化陷阱:如何优雅处理 NumberFormatException
java
孔明click333 小时前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·sa-token·开源·springboot·登录·权限认证
程序猿阿越4 小时前
Kafka4源码(二)创建Topic
java·后端·源码阅读
悟空码字4 小时前
Spring Boot 整合 MongoDB 最佳实践:CRUD、分页、事务、索引全覆盖
java·spring boot·后端
省长4 小时前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·后端·开源