【运维笔记】docker

本文详细介绍Docker的核心概念,包括镜像、容器和仓库,以及如何使用Docker进行镜像的搜索、拉取、上传和管理。同时,文章还介绍了Docker容器的创建、启动、停止和删除等操作,并提供了Docker私有仓库的搭建方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker

## 简介
    一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

## Rootless mode
    以非root模式启动

## live restore
    docker进程退出时容器不停止
    
    ### 方法一:/etc/docker/daemon.json
    {"live-restore": true}
    systemctl reload docker
    
    ### 方法二:/usr/lib/systemd/system/docker.service
    ExecStart 后面加上 --live-restore  
    
    ### 不能用于集群模式
    docker-compose启用的容器请求超时,docker-compose down 命令报错
    
## 核心概念:
    镜像(image)、容器(container)、仓库(Repository)

镜像仓库(registry)

## 公共镜像源(/etc/docker/daemon.json)
    "registry-mirrors":["http://10.8.8.143"]
    #"registry-mirrors": ["http://hub-mirror.c.163.com"]

## 设置信任的镜像仓库(daemon.json)
    "insecure-registries":["http://10.8.8.143"]

## 创建私有仓库
    docker pull registry
    docker run -dit --name local_registry -p 5000:5000 -v /data/registry:/var/lib/registry registry

    ### 查看私有仓库中的镜像
        curl localhost:5000/v2/_catalog
    
    ### 搭建私有仓库Harbor

Docker 镜像(image)

## 镜像搜索
docker search NAME[:TAG]	##不指定标签(TAG),则会默认选择latest标签,即最新版的镜像。

## 拉取镜像
docker pull NAME[:TAG]
docker pull registry/NAME[:TAG]

## 上传镜像
docker push NAME[:TAG]
docker push registry/NAME[:TAG]

## 列出本地镜像
docker image ls -a

## 删除本地镜像(镜像没有被容器使用)
docker image rm [image_name]
	-f 强制删除

## 镜像重命名
docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

## 导出镜像
docker save -o file_name image_name  ##保留完整记录

## 导入镜像
docker load < file_name

## 创建镜像
1、根据已有容器创建
	docker commit [container_name] [REPOSITORY:TAG]

2、从文件模板导入
	docker import - [image_name]:[TAG]

3、dockerfile创建
dockerfile 是一个文件
docker build dockerfile
	docker build -f path/to/dockerfile_name -t image_name:tag .
	#  docker build 最后的 . 号,是在指定镜像构建过程中的上下文环境的目录

Docker 容器(Container)

## 查看容器
	docker ps -a

## 查看容器资源占用状态
	docker stats

## 创建容器
docker run [option] image_name command
	### 参数
	-P	自动映射容器所有端口到本地随机端口
	-p	端口映射(本地端口:容器端口) 多个-p映射多个端口
	-d	进入后台运行
	-i  交换式操作
	-t	终端
	
	### 容器获取root权限,执行systemctl命令等
	--privileged  # 赋予容器扩展权限,需要/usr/sbin/init
		# docker run -dit --privileged image_name /usr/sbin/init
		# dockerfile指定 CMD ["/usr/sbin/init”]

	--name	自定义容器名
	--rm 容器退出后立即删除
	-b  挂载指定的网桥
	--ip-forward=true/false  是否开启转发功能
	--dns  指定DNS服务器
	-h 配置容器hostname
	-ip  指定容器ip
	--net=bridge/host/none  配置容器的桥接模式
	-v/--mount 挂载目录

## 启动容器
	docker start container_name

## 终止容器
	docker stop container_name
	
## 查看容器日志
	docker logs container_name

## 查看容器所有信息
	docker container inspect [container_name]

## 进入容器
	docker exec	[option] [container] [command]
    -u root # 以root用户进入容器
	
## 删除容器
	docker rm container_name
	
## 清理所有处于静止状态的容器
	docker prune

## 导入导出容器(import export)				##保留容器当时的快照状态
	docker export container_name > file_name

## 文件拷贝
	docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
	docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
### 运维 Docker 笔记 #### Docker 简介 Docker 是一种开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化[^1]。 #### 安装 Docker 对于不同操作系统上的安装方法有所不同: - **Windows**: 可通过官方提供的 Docker Desktop 来简化安装过程。 - **macOS**: 同样推荐使用 Docker Desktop。 - **Linux**: 不同发行版有不同的具体步骤,通常涉及设置仓库和安装软件包两步[^2]。 #### 基础概念 理解几个核心术语有助于更好地掌握 Docker 的使用方式: - **镜像(Image)**: 类似于传统计算机中的只读模板。 - **容器(Container)**: 镜像的一个运行实例;当启动某个镜像时即创建了一个新的容器。 - **仓库(Repository)**: 存储库用于保存多个版本的镜像文件. #### 日常管理命令 熟悉一些常用的 CLI 操作可以帮助管理员更高效地维护集群和服务: - `docker images` 列出本地已有的所有镜像; - `docker ps` 查看当前正在执行的任务列表; - 创建新容器可以通过 `docker run IMAGE_NAME` 实现. #### 自动化与 CI/CD 整合 利用 Jenkins 和 Maven 工具链,在 Linux 上搭建一套完整的持续集成流水线来自动部署 Java 应用程序成为可能。这不仅提高了工作效率还减少了人为错误的发生几率[^4]. #### 网络配置技巧 由于采用了基于 Linux 内核特性设计而成的独特网络模型——桥接模式,默认情况下每个宿主机内部都会存在名为 "docker0" 的虚拟网卡负责连接各个独立运作着的服务进程之间相互通讯的需求。这种架构下的性能损耗极低而且易于管理和扩展[^3]. ```bash # 示例:查看本机存在的所有网络接口及其状态信息 ifconfig -a ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值