Docker

使用最广泛的开源容器引擎,一种操作系统级的虚拟化技术,依赖于Linux内核特性:Namespace(资源隔离)和Cgroups(资源限制),一个简单的应用程序打包工具

一、Docker镜像管理

$ 命令格式:docker image COMMAND(命令)
指令 描述
ls 列出镜像
build 构建镜像来自DOckerfile
history 查看镜像历史
inspect 显示一个或多个镜像详细信息
pull 从镜像仓库拉取镜像
push 推送一个镜像到镜像仓库
rm 移除一个或多个镜像
prune 移除没有被标记或者没有被任何容器引用的镜像
tag 创建一个引用源镜像标记目标镜像
save 保存一个或多个镜像到一个tar归档文件
load 加载镜像来自tar归档或标准输入

二、Docker容器管理

$ 命令格式:docker run [OPTIONS](选项) IMAGE [COMMAND](命令) [ARG...]
选项 描述
-i,-interactive 交互式
-t, –tty 分配一个伪终端
-d, –detach 运行容器到后台
-e, –env 设置环境变量
-p, –publish list 发布容器端口到主机
-P, –publish-all 发布容器所有EXPOSE的端口到宿主机随机端口
–name string 指定容器名称
-h, –hostname 设置容器主机名
–ip string 指定容器IP,只能用于自定义网络
–network 连接容器到一个网络
-v, –volume list 将文件系统附加到容器
–restart string 容器退出时重启策略,默认no,可选值:[always|on-failure]
-m,–memory 容器可以使用的最大内存量
-memory-swap 允许交换到磁盘的内存量
-memory-swappiness=<0-100> 容器使用SWAP分区交换的百分比(0-100,默认为-1)
-oom-kill-disable 禁用OOM Killer
–cpus 可以使用的CPU数量
-cpuset-cpus 限制容器使用特定的CPU核心,如(0-3, 0,1)
-cpu-shares CPU共享(相对权重)
$ 命令格式:docker container COMMAND
选项 描述
ls 列出容器
inspect 查看一个或多个容器详细信息
exec 在运行容器中执行命令
commit 创建一个新镜像来自一个容器
cp 拷贝文件/文件夹到一个容器
logs 获取一个容器日志
port 列出或指定容器端口映射
top 显示一个容器运行的进程
stats 显示容器资源使用统计
stop/start/restart 停止/启动一个或多个容器
rm 删除一个或多个容器
prune 移除已停止的容器

三、Dockerfile构建镜像

$ 命令格式: docker build [OPTIONS] PATH | URL | - [flags]
Options:
-t, --tag list # 镜像名称
-f, --file string # 指定Dockerfile文件位置
# docker build -t shykes/myapp .
# docker build -t shykes/myapp -f /path/Dockerfile /path
# docker build -t shykes/myapp http://www.example.com/Dockerfile
指令 描述
FROM 构建新镜像是基于哪个镜像
LABEL 标签
RUN 构建镜像时运行的Shell命令
COPY 拷贝文件或目录到镜像中
ADD 解压压缩包并拷贝
ENV 设置环境变量
USER 为RUN、CMD和ENTRYPOINT执行命令指定运行用户
EXPOSE 声明容器运行的服务端口
WORKDIR 为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录
CMD 运行容器时默认执行,如果有多个CMD指令,最后一个生效

四、Harbor镜像仓库搭建与使用

# 下载链接:https://github.com/goharbor/harbor/releases
$ tar zxvf harbor-offline-installer-v2.0.0.tgz
$ cd harbor
$ cp harbor.yml.tmpl harbor.yml
$ vi harbor.yml
hostname: reg.ctnrs.com
https: # 先注释https相关配置
harbor_admin_password: Harbor12345
$ ./prepare
$ ./install.sh
# 配置http镜像仓库可信任
$ vim /etc/docker/daemon.json
{"insecure-registries":["reg.ctnrs.com"]}
$ systemctl restart docker
# 打标签
docker tag centos:7 reg.ctnrs.com/library/centos:7
# 上传
$ docker push reg.ctnrs.com/library/centos:7
# 下载
$ docker pull reg.ctnrs.com/library/centos:7
作者:admin  创建时间:2023-04-27 13:42
最后编辑:admin  更新时间:2024-07-17 15:26