做网站的程序员,国际网站制作,上海最新新闻发布会,网站的视频做gif一、docker
1.1 简介 容器技术 容器其实就是虚拟机#xff0c;每个容器可以运行不同的系统【系统以Linux为主的】 为什么要使用docker#xff1f; docker容器之间互相隔离#xff0c;可以提高安全性通过使用docker可以做靶场 1.2 安装配置docker 方法一#xff1a;yum安装…一、docker
1.1 简介 容器技术 容器其实就是虚拟机每个容器可以运行不同的系统【系统以Linux为主的】 为什么要使用docker docker容器之间互相隔离可以提高安全性通过使用docker可以做靶场 1.2 安装配置docker 方法一yum安装 方法二编译安装 第一步配置yum源 需要三个源 BASE 基本源EXTRA 额外软件包源UPDATA 升级软件包源 [rootlocalhost yum.repos.d]# vim qinghua.repo
[base]
namebase
enabled1
gpgcheck0
baseurlhttps://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/[extra]
nameextra
enable1
gpgcheck0
baseurlhttps://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/extras/x86_64/[update]
nameupdate
enabled1
gpgcheck0
baseurlhttps://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/updates/x86_64/[epel]
nameepel
enabled1
gpgcheck0
baseurlhttps://mirrors.tuna.tsinghua.edu.cn/epel/7Server/x86_64/第二步检查yum源是否配置成功
yum clean all
yum repolist
第二步安装docker的依赖环境
yum install -y yum-utils device-mapper-persistent-data lvm2第三步设置yum源并更新 yum 的包索引
#在 CentOS 系统中添加阿里云的 Docker CE 仓库。执行该命令后系统将从阿里云镜像站点下载并安装 Docker CE 软件包
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#快速更新 YUM 缓存
yum makecache fast第四步安装docker yum -y install docker-ce doker-ce-cli containerd.io第五步启动并加入开机启动
systemctl start docker
systemctl enable docker
第六步验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
[rootlocalhost yum.repos.d]# docker version
Client: Docker Engine - CommunityVersion: 26.0.0API version: 1.45Go version: go1.21.8Git commit: 2ae903eBuilt: Wed Mar 20 15:21:09 2024OS/Arch: linux/amd64Context: defaultServer: Docker Engine - CommunityEngine:Version: 26.0.0API version: 1.45 (minimum version 1.24)Go version: go1.21.8Git commit: 8b79278Built: Wed Mar 20 15:20:06 2024OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.6.28GitCommit: ae07eda36dd25f8a1b98dfbf587313b99c0190bbrunc:Version: 1.1.12GitCommit: v1.1.12-0-g51d5e94docker-init:Version: 0.19.0GitCommit: de40ad01.3 管理和使用docker
1.3.1 管理服务
systemctl start docker # 启动docker服务
systemctl stop docker # 关闭docker服务
systemctl enable docker # 设置开机自启动
systemctl disable docker # 取消开机自启动docker info # 显示docker的详细信息
注意关于防火墙 使用docker需要注意iptables防火墙 建议 关闭firewalld启动iptables 具体操作命令 yum install iptables-services -ysystemctl stop firewalld
systemctl disable firewalldsystemctl start iptables
systemctl enableiptables 注意关闭selinux
setenforce 0
sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config
1.3.2 配置镜像加速 启动docker容器需要用docker镜像【docker镜像就是一个操作系统】 默认docker镜像都是在国外访问速度特别慢所以需要配置加速 vi /etc/docker/daemon.json
{registry-mirrors: [https://mzxx8xy8.mirror.aliyuncs.com]
}systemctl daemon-reload
systemctl restart docker
1.4 管理镜像
1.4.1 下载镜像
docker pull 镜像名:版本
案例 1、下载centos7的镜像 docker pull centos:7 2、下载nginx的镜像 docker pull nginx 3、下载busyboy镜像 docker pull busybox 1.4.2 查看镜像
docker images # 列出本地所有的镜像。
docker search image_name # 在Docker Hub中搜索指定的镜像。
1.4.3 删除操作
docker rm container_id # 删除一个已停止的容器。
docker rmi image_id # 删除一个本地的镜像只有在没有任何容器使用该镜像时才能删除
docker rm -f container_id # 强制删除,用来删除正在运行的容器
1.4.4 控制容器
docker start container_id # 启动一个已停止的容器。
docker stop container_id # 停止一个正在运行的容器。
docker restart container_id # 重启一个容器
1.4.5 其他常用命令
docker build # 用于构建Docker镜像。
docker login # 登录到Docker Hub或其他私有仓库。
docker logs container_id # 查看容器的日志输出。
1.5 容器管理
1.5.1 查看容器
docker ps # 列出当前正在运行的容器
docker ps -a # 列出所有容器包括正在运行的和已停止的。
1.5.2 启动容器
docker run -t这里是指定一个终端如果没有终端是无法登录这个容器的-i--interactive如果想用交互式访问就需要这个选项--name string这里指定容器的名字--rm当容器停止的时候自动删除容器对象-d--detach让当前的这个容器工作在后台--network string指定容器加入到那个网络如果不加的话默认是一个bridge网络-P暴露容器的端口将容器中的端口和宿主机的任意端口进行端口映射-p 宿主机的端口:容器的端口 可以将宿主机的指定端口和容器的端口进行映射-v逻辑卷 1.5.3 删除容器
docker rm -f 容器名/容器ID
1.5.4 关闭所有容器
docker rm -f docker ps -a | awk NR2{print $1}
1.6 dockerfile
1.6.1 简介 dockerfile 是一个脚本文件 通过这个脚步文件可以快速做新的镜像 在dockfile中包含了各种关键字 1.6.2 dockerfile 关键字 FROM 指定基础镜像 RUN 在基础镜像中执行的命令 ADD 将宿主机的文件发送到docker容器中 如果ADD发送的文件是一个tar.gz的包那么ADD会自动进行解压 COPY将宿主机中的一个文件复制到容器中 EXPORT将容器的端口暴露出去 ENTRYPOINT在容器中去执行一个shell脚本 # 指定镜像
FROM centos:7# 执行命令安装编译库文件
RUN yum install -y gcc gcc-c make openssl-devel zlib-devel ncurses-devel iproute# 安装php环境
RUN yum install epel-release -y# 添加解压nginx包到/tmp目录下
ADD nginx-1.18.0.tar.gz /tmp# 进入目录进行编译安装
RUN cd /tmp/nginx-1.18.0 ./configure --prefix/usr/local/nginx make -j 2 make install# 删除容器内置配置文件
RUN rm -f /usr/local/nginx/conf/nginx.conf# 复制本地配置文件到容器
COPY nginx.conf /usr/local/nginx/conf# 复制启动脚本
COPY run.sh /tmp
RUN cd /tmp
RUN chmod x /tmp/run.sh# 复制web代码到容器
COPY s.html /usr/local/nginx/html/# 声明暴露端口
EXPOSE 80# 启动容器nginx服务指定全局命令daemon off保证服务在前台运行不会关闭
ENTRYPOINT [/tmp/run.sh]案例用centos作为基础镜像安装上nginx 第一步先准备一个目录 第二步在目录中创建dockerfile文件 # 指定镜像
FROM centos:7# 执行命令安装编译库文件
RUN yum install -y gcc gcc-c make openssl-devel zlib-devel ncurses-devel iproute# 安装php环境
RUN yum install epel-release -y# 添加解压nginx包到/tmp目录下
ADD nginx-1.18.0.tar.gz /tmp# 进入目录进行编译安装
RUN cd /tmp/nginx-1.18.0 ./configure --prefix/usr/local/nginx make -j 2 make install# 删除容器内置配置文件
RUN rm -f /usr/local/nginx/conf/nginx.conf# 复制本地配置文件到容器
COPY nginx.conf /usr/local/nginx/conf# 复制启动脚本
COPY run.sh /tmp
RUN cd /tmp
RUN chmod x /tmp/run.sh# 复制web代码到容器
COPY s.html /usr/local/nginx/html/# 声明暴露端口
EXPOSE 80# 启动容器nginx服务指定全局命令daemon off保证服务在前台运行不会关闭
ENTRYPOINT [/tmp/run.sh]第三步根据dockerfile中的内容去逐一准备文件 nginx-1.18.0.tar.gznginx.confrun.shs.html链接https://pan.baidu.com/s/1LIZleafIAcB7HNmkFkbG_Q?pwdd25l 提取码d25l 第四步创建镜像文件 docker build -t 镜像名 . 第五步用自己的镜像启动容器 略