docker笔记
docker version # 查看docker当前版本
docker info # 查看docker信息
docker ps # 列出当前系统里运行的容器,-a 列出未启动的容器
docker search 镜像名 # 从远程搜索镜像
docker pull 镜像名 # 从远程仓库拉取指定镜像
docker images # 列出当前所存储的镜像
docker run 镜像名 # 启动一个镜像
# -it 暂时离开当前操作系统,进入容器内部
# -d,让容器在后台执行
# --name,为容器起一个名字
# --rm,表示docker不保存容器,运行完毕就会删除
# -v /tmp:/tmp,表示把本机的/tmp目录挂载到容器里的/tmp目录,让容器共享宿主机的/tmp目录
# --net=bridge,Docker提供了三种网络模式,null没有网络,host直接使用宿主机网络,默认是bridge,桥接模式
# -p 80:80,端口映射需要在bridge模式,本机端口映射容器端口,bridge模式有内置的虚拟网卡,能解决端口冲突
docker rmi image_Id # 删除镜像
docker rm container_id # 删除容器
docker exec -it container_id # 在容器内执行另一个程序
docker start # 启动已经停止的容器
docker stop container_id # 停止一个容器,container_id为容器id
docker inspect image_id # 查看镜像分层
docker build -f Dockerfile.busybox . # 构建镜像
# -f为指定Dockerfile文件名,后面必须跟上文件路径,叫构建上下文
docker tag test-app lawtest/test.app:1.0 # 给ngx-app镜像打上标签,lawtest为docker hub镜像用户名
docker push lawtest/ngx.app:1.0 # 镜像发布到 docker hub
docker save test-app:latest -o test.tar # 将镜像导出压缩包,-o 指定文件名称
docker load -i test.tar # 从压缩包导入docker,-i 指定文件名称
docker cp a.txt 062:/tmp # 将当前目录的a.txt文件拷贝进容器ID为062的/tmp目录中
docker cp 062:/tmp/a.txt ./b.txt # 将容器内/tmp/a.txt文件拷贝到宿主机当前目录
run容器
docker run --detach --hostname gitlab.xxx.com --publish 444:443 --publish 81:80 --publish 23:22 --name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab 5d8ab6b06918
- --hostname :指定容器中绑定的域名,会在创建镜像仓库的时候使用到,这里绑定gitlab.xxx.com
- --publish:端口映射;容器内的443,80,22端口分别映射到宿主机的444,81,23端口
- --volume :挂载数据卷,映射到容器中去的容器外部存储空间
- 5d8ab6b06918 :镜像的ID
- --name 为容器指定一个名称
- -i:以交互模式运行容器,通常与 -t 同时使用
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
- -d: 后台运行容器,并返回容器ID
当地的位置 | 容器的位置 | 作用 |
---|---|---|
/srv/gitlab/config | /etc/gitlab | 用于存储GitLab配置文件 |
/srv/gitlab/logs | /var/log/gitlab | 用于存储日志 |
/srv/gitlab/data | /var/opt/gitlab | 用于存储应用数据 |
docker常用命令
命令 | 作用 |
---|---|
docker ps | 查看正在运行的容器 |
docker ps -a | 查看全部容器 |
docker pull trainging/webapp | 拉取镜像 |
docker rmi |
删除images,通过image的id来指定删除谁 |
docker run | 启动一个容器 |
docker stop wizardly_chandrasekhar | 停止容器 |
docker start wizardly_chandrasekhar | 重启容器 |
docker rm wizardly_chandrasekhar | 移除容器(删除容器时,容器必须是停止状态,否则会报错) |
docker port bf08b7f2cd89 | 查看指定容器网络端口 |
docker exec -it 13bfd2asf /bin/bash | 进入容器 |
上传文件
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
OPTIONS说明:
-L :保持源目标中的链接
上传文件实例
docker cp /root/test.txt ecef8319d2c8:/root/
该命令的意思是将当前操作系统(CentOS)家目录(root)下的文件test.txt拷贝到容器id为ecef8319d2c8的家目录(root)文件夹下。
下载文件
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
下载文件实例
docker cp ecef8319d2c8:/root/test.txt /root/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通