docker

本文详细介绍了Docker的安装步骤,包括在Linux、MAC和Windows平台上的安装,并讲解了Docker镜像的管理,如构建、历史、加载和保存。此外,还阐述了容器的创建、管理,包括启动、停止、重启、资源限制及数据持久化。同时提到了Dockerfile和Harbor,Dockerfile用于自动化构建镜像,Harbor则是一个企业级的容器镜像仓库。
摘要由CSDN通过智能技术生成

docker

docker官网: https://docs.docker.com

docker版本:
	社区版(CE)
	企业版(EE)

支持平台:
	linux
	MAC
	WINDOWS

DOCKER 安装

# 安装依赖包
yum -y install yum-utils

# 添加docker软件包源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装docker CE,安装时不要直接打docker,因为docker做过升级,直接打docker安装的版本比较落后,落后3-4版本
yum -y install docker-ce

# 启动docker服务
systemctl start docker.service //启动
systemctl enable docker.service //开机启动

DOCKER 镜像管理

镜像是什么
一个分成存储的文件,不是一个单一的文件
一个软件的环境
一个镜像可以创建N个容器
一种标准化的交付
一个不包含linux内核而又精简的linux操作系统
配置加速器
# docker hub是由docker公司负责维护的公告镜像仓库,包含大量的容器镜像,docke工具默认从这个公共镜像仓库下载镜像
# https://hub.docker.com docker官方镜像仓库

vim /etc/docker/daemon.json
{
"registry-mirrors":["https://b9pmyelo.mirror.aliyuncs.com"]
}

# 重启docker
systemctl restart docker
镜像常用的命令
语法: docker [选项] 命令

选项:
-v,--version //查看docker版本

管理命令:
image		//镜像管理

命令:
info		//查看当前docker配置信息

语法: docker image 命令
docker image 命令:
	build		//构建镜像
	history		//查看镜像历史信息
	import		
	inspect		//显示一个或多个
	load		//加载镜像来自tar归档或者 标准输入
	ls			//列出镜像
	prune		//移除没有被使用的镜像
	pull		//从镜像仓库拉去+
	 
	push		//推送一个镜像到镜像仓库
	save		//保存一个或多个镜像到一个tar归档文件
	tag

ls :
语法: docker image ls [选项] [镜像[:标签]]
选项:
	-a,--all 显示全部的意思(默认选项)
例子: docker image ls 		//查看所有镜像
     docker image ls == docker images
例子: docker image ls nginx 	//查看nginx镜像

save :
语法: docker image save 镜像 [选项] 文件
简写: docker save 镜像 [选项] 文件
选项:
	-o 导出到文件中
例子: docker image save nginx -o nginx.tar
简写:             

load :
语法: docker image load [选项] tar文件
简写: docker load [选项] tar文件
选项:
	-i 读取本地tar包导入docker
例子: docker image load -i nginx.tar
简写: docker load -i nginx.tar

DOCKER 容器

创建容器常用选项
run :
语法: docker container run [选项] IMAGE
	docker run [ -it -d -e env=pord -p 宿主机端口:容器端口 --name 容器名 -h 主机名 --restart=always] 镜像名
简写: docker run [选项] IMAGE 
选项:
	-i 交互式,一般与-t一起使用
	-t 伪终端,一般与-i一起使用
	-d 后台运行
例子:
	docker run -d centos	//不能启动推出状态
	docker run -it -d nginx //-it 为容器分配一个伪终端,1号进程,来保持容器的运行,纯净的系统是没有1号进程的
选项:
	-e,-env		设置变量
	-p			发布容器端口到主机端口
	-P			发布容器所有的EXPOSE的端口到宿主机水机端口
	--name		指定容器名称
	-h			设置主机名
	--ip		指定容器IP,只能用于自定义网络
	--network	连接容器到一个网络
	-v,--mount 	将文件系统附加到容器
	--restart 	容器退出时重启策略,默认no,可选值:[always|on-failure]
例子: docker run -d -e env=pord -p 88:80 --name web -h web --restart=always nginx
资源限制选项:
	-m							容器可以使用的最大内存
	-memory-swap				允许交互到磁盘的内存量
	-memory-swappiness=<0-100>	容器使用SWAP分区交换的百分比(1-100,默认为-1)
	-oom-kill-disable			禁用OOM killer
	--cpus						可以使用的COU数量
	-cpuset-cpus				限制容器特定的CPU核心,如(0-3,0,1)
	-cpu-shares					CPU共享(相对权重)
例子: docker run -d -m="500m" --cpus="1" nginx	//内存最大使用500m,cpu使用1个


/var/lib/docker/containers/容器ID //容器的目录
/var/lib/docker/overlay2/容器ID //容器的目录
常用管理命令
exec:
语法: docker container exec [选项] 容器名|容器ID bash|指令
简写: docker exec [选项] 容器名|容器ID bash
选项:
	-i 交互式
	-t 伪终端
例子:
	也可以直接执行命令
	docker exec web ls

ls : 列出容器
语法: docker container ls [选项]
选项:
	-a 全部
	-l 列出最新创建的容器
	-q 列出所有的容器ID
注意:
docker container ls == dockers ps

inspect :
语法: docker container inspect [选项] 容器名
简写: docker inspect [选项] 容器名
例子: docker container inspect web

commit : 创建一个新镜像来自一个容器
语法: docker container commit [OPTIONS] 容器 [镜像名[:标签]]
简写: docker container commit [OPTIONS] 容器 [镜像名[:标签]]
例子: docker container commit web web:latest

cp : 复制文件到容器
语法: docker container cp [选项] 容器:目录
简写: docker cp [选项] 容器:目录
例子: docker cp 123.txt web:/root

logs : 获取容器日志
语法: docker container logs [选项] 容器
简写: docker logs [选项] 容器
例子: docker logs web

port : 列出或指出容器端口 
语法: docker container port 容器名
简写: docker port 容器名
例子: docker container port web

top : 显示容器运行的进程
语法: docker container top 容器 [ps 选项]
简写: docker top 容器 [ps 选项]
例子: docker contweb

stats : 选项示容器资源使用统计
语法: docker container stats [选项] 容器
简写: docker stats [选项] 容器
选项:
	--no-stream 退出交互状态
例子: docker container stats web

stop/start/restart : 停止/启动/重启容器
语法: docker container stop|start|restart [选项] 容器
简写: docker stop|start|restart [选项] 容器
例子: docker container stop web

rm : 删除容器
语法: docker container rm [选项] 容器|容器ID
简写: docker rm [选项] 容器
选项:
	-f 强制
	-l 链接
	-v 逻辑卷
例子: docker container rm web
	删除所有容器
	docker rm $(docker ps -qa)

prune : 删除停止的容器
语法: docker container prune [OPTIONS]
选项:
	-f 强制

容器数据
docker 提供三种方式将睡觉从宿主机挂在到容器中:
	volumes: docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)。保存数据的最佳方式
	bind mounts: 将宿主机上的任意位置的文件或者目录挂载到容器中
volume:
语法: docker volume 命令
命令:
	create
	inspect
	ls
	prune
	rm

create: 创建逻辑卷
语法: docker volume create [选项] [逻辑卷]
例子: docker volume create nginx-vol

inspect:
语法: docker volume inspect [选项] VOLUME [VOLUME...]

ls:
语法: docker volume ls [选项]
例子: docker volume ls

prune:
语法: docker volume prune [选项]

rm:
语法: docker volume rm [选项] VOLUME [VOLUME...]

例子:
	1. 创建数据卷
	docker volume create nginx-vol
	2. 使用数据卷
	docker run -d --name=nginx-test --mount src=nginx-vol,dst=/usr/share/nginx/html nginx
	或
	docker run -d --name=nginx-test --mount src=nginx-vol:/usr/share/nginx/html nginx

bind mounts 示例

1.创建目录
mkdir /opt/wwwroot/
2.挂在宿主机目录到容器
docker run -it -d --name web -p 88:80 -v /opt/wwwroot/:/usr/share/nginx/html nginx
3. 根据情况而定,可以存放自定义文件,也可以存放数据
vim /opt/wwwroot/index.html

制作镜像:

  1. 启动容器后的应用程序产生的数据尽量放到一个目录
  2. 构建镜像是不能将已经生产的应用程序镜像打包进去的

jenkins gitlab使用docker都是采用-v将他们自身产生的数据出街话宿主机

容器网络

DNAT 目标地址转换

SNAT 源地址转换

dockerfile

docker通过dockerfile自动构建镜像,dockerfile是一个包含用于组建镜像的文本文件,由一条一条指令组成

创建dockerfile目录
mkdir dockerfile

FROM 	//构建新镜像基于那个镜像
LABEL	//标签
RUN		//构建镜像时运行的Shell命令
COPY	//拷贝文件或目录到镜像中
ADD		//解压压缩包并拷贝
ENV		//设置环境变量
USER	//为RUN,CMD和ENTRYPOINT执行命令指定运行用户
EXPOSE	//声明容器运行的服务端口
WORKDIR	//为RUN,CMD,ENTRYPOINY,COPY和ADD设置工作目录
CMD ["nginx","-g","daemon off;"] //-g 全局,daemon off 退出前台启动,后台启动

build: 构建docker镜像
语法: docker build [选项] 文件路径 
选项:
	-t 镜像名称
	-f 指定Dockerfile文件位置
例子: docker build -t nginx:v1 .

编译安装一个软件
1. 安装依赖包
2. ./configure 检查环境依赖
3. make 编译
4. make install 安装 

Harbor

    Harbor 是由VMWare公司开源的容器镜像仓库。事实上,Harbor 是在Docker Registry上进行相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括,管理用户界面,基于角色访问控制,AD/LDAP基础已经审计日志等,足以满足基本企业需求
官方: https://goharbor.io/
Github: https://github.com/goharbor/harbor

Harbor 部署: 先决条件

服务器硬件配置:
最低要求: CPU2核/内存4G/硬盘40GB
推荐: CPU4核/内存8G/硬盘160GB

软件:
Docker CE 17.06版本+
Docker Compose 1.18版本+  批量管理容器

Harbor安装有两种方式
在线安装: 从Docker Hub 下载Harbor相关镜像,因此安装软件包非常小
离线安装: 安装包包含部署的相关镜像,因此安装包比较大
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值