Docker 常用容器命令
Docker 常用容器命令
一、新建并启动容器
1 2 3 4 5 6 7 8 9 10 11 12 | docker run [OPTIONS] IMAGE [COMMAND] [ARG...] --name= "容器新名字" # 为容器指定一个名称; -d # 后台运行容器,并返回容器ID,也即启动守护式容器; -i # 以交互模式运行容器,通常与 -t 同时使用; -t # 为容器重新分配一个伪输入终端,通常与 -i 同时使用; -P # 随机端口映射,并将容器内部使用的网络端口映射到我们使用的主机上; -p # 指定端口映射,有以下四种格式 ip:hostPort:containerPort ip::containerPort hostPort:containerPort # 将containerPort映射到主机上的hostPort端口 containerPort -v 主机目录:容器目录 # 挂载 宿主机的目录挂载到容器的指定目录 |
1. 新建容器指定一个名称
1 | docker run --name=testname hello-world |
2. 交互模式运行容器并分配一个伪输入终端
1 | ① 执行后进入到容器内部,只有简单的linux命令可以使用 |
1 | docker run -it centos /bin/bash |
1 | ② 退出并关闭容器 |
1 | exit |
1 | ③ 不关闭并退出容器 |
1 | ctrl + P + Q |
3. 根据容器ID或名字 启动
1 | docker start 容器ID或者容器名 |
4. 根据容器ID或名字 重启
1 | docker restart 容器ID或者容器名 |
5. 本地内容拷贝到容器目录下
1 | docker cp 需要拷贝的文件或目录 容器名称:容器目录 |
6. 创建启动容器映射端口号,访问测试
1 2 3 4 | # 配置容器映射到宿主机中的端口号 docker run -d --name 容器名 -p 宿主机端口号:容器内的端口号 镜像名称[:tag] # 绑定宿主机ip+端口号: 只能通过绑定的ip和端口号 访问容器 docker run -d --name 容器名 -p ip:宿主机端口号:容器内的端口号 镜像名称[:tag] |
1 | docker run -d --name mynginx -p 81:80 nginx |
1 | curl http: //localhost:81 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 注:如果访问失败,可能是网络问题或者防火墙没关! 配置前docker容器因为需要监听宿主机的端口号,有可能出现ipv4通信失败的问题,解决办法如下: # 修改配置文件: vim /usr/lib/sysctl.d/00-system.conf # 添加内容 net.ipv4.ip_forward=1 # 保存退出 重启网络 systemctl restart network # 重启容器 docker restart 容器名 |
7. 创建容器挂载卷(挂载本地文件到容器内)
1 | 创建docker容器时,将本地目录挂载到nginx容器指定目录下,将来可以访问nginx中的资源 |
1 | docker run -d --name=mynginx -p 81:80 -v /opt/html:/opt/ nginx |
1 2 3 | cp 拷贝到容器中的文件,容器中的是副本,宿主机和容器互不影响! 挂载后的目录中,宿主机修改后,容器内核宿主机文件一致! |
二、查询容器
1 2 3 4 5 6 | docker ps [OPTIONS] -a # 列出当前所有正在运行的容器+历史上运行过的 -l # 显示最近创建的容器。 -n # 显示最近n个创建的容器。 docker ps -n 3 -q # 静默模式,只显示容器编号。 --no-trunc # 不截断输出。 |
三、删除容器
1 2 3 4 5 6 | docker rm 容器ID # 删除指定容器 docker rm 容器Name # 根据容器名删除容器 docker rm $(docker ps -a -q) # 删除所有容器,正在运行的容器无法删除 docker rm -f $(docker ps -a -q) # 删除所有容器,包括正在运行的容器 docker ps -a -q | xargs docker rm # 删除所有容器,不包括正在运行的容器 |
1. 根据容器ID删除
2. 根据容器名删除
3. 删除所有容器,包括正在运行的容器
1 | docker rm -f $(docker ps -qa) |
四、守护式容器命令
1 | docker run -d --name mynginx nginx |
2. 创建并启动docker容器 脚本
1 | docker run -d --name=mycentos centos /bin/bash -c "while true;do echo hello zzyy;sleep 2;done" |
五、查看docker容器日志
以后容器创建或者启动失败,可以通过日志分析错误原因!
1. 查看容器所有日志
1 | docker container logs 容器ID |
2. 跟随查看容器日志
1 2 3 4 | docker logs -f -t --tail n 容器ID # 查看容器日志 -t # 是加入时间戳 -f # 跟随最新的日志打印 --tail 数字 # 显示最后多少条 |
1 | ctrl+c 可以退出跟随查看 |
六、重新进入docker
1 2 3 4 5 6 7 | docker exec -it 容器ID或名字 /bin/bash # 在容器中打开新的终端,并且可以启动新的进程 # 打开新的终端进入容器:exit退出容器时,容器不会关闭 docker attach 容器ID # 直接进入容器启动命令的终端,不会启动新的进程 # 直接进入容器使用容器自己的终端:exit退出容器时,容器会关闭 docker exec -it 容器ID ls -l /tmp # 在容器外执行docker内命令 |
1. 在容器中打开新的终端,并且可以启动新的进程
docker exec -it 容器ID /bin/bash
2. 直接进入容器启动命令的终端,不会启动新的进程
1 | docker attach 容器ID |
来源:https://blog.csdn.net/qq_45037155/article/details/129665476
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)