如何策划一个网站,南昌企业网站建设哪家好,无备案网站 阿里联盟,logo123设计网目录
一、什么是docker
二、docker的缺陷
三、简单的操作
一、首先配置一台虚拟机
二、安装Docker-CE
一、安装utils
二、 将 Docker 的软件源添加到 CentOS 的 yum 仓库中。这样可以通过 yum 命令来安装、更新和管理 Docker 相关的软件包。
三、将 download.docker.co…目录
一、什么是docker
二、docker的缺陷
三、简单的操作
一、首先配置一台虚拟机
二、安装Docker-CE
一、安装utils
二、 将 Docker 的软件源添加到 CentOS 的 yum 仓库中。这样可以通过 yum 命令来安装、更新和管理 Docker 相关的软件包。
三、将 download.docker.com 替换为 mirrors.aliyun.com/docker-ce。这个命令的目的是将 Docker 软件源的地址替换为阿里云镜像站点以提高下载速度和稳定性。 四、安装docker-ce 五、启用并立即启动 Docker 服务。这个命令会将 Docker 服务添加到系统启动项并立即启动 Docker 服务以便可以立即开始使用 Docker。 六、显示当前安装的 Docker 版本信息包括 Docker 客户端和服务端的版本号、构建日期等详细信息。
七、创建一个文件
八、在文件中添加下方的内容
九、启动docker
三、docker的基本使用
一、在仓库中查找镜像
二、下载镜像
三、查看本地docker镜像
四、调用容器内的命令
五、进入容器
六、容器正常运行
七、定义内存大小
八、查看正在运行的容器
九、确定被锁定的容器信息
十、限制容器只能使用1个CPU
十一、限制容器在CPU上第一 第二核心上使用资源
十二、限制容器使用磁盘I/O
十三、查看所有的容器包括已经退出的
十四、停止和启动容器
十五、删除以退出的容器
十六、删除已退出的容器及正在运行的容器
十七、为容器命名为snowmpy
十八、输入容器信息并导出容器
十九、导入容器
二十、指定docker的其他各种参数
二十一、更改镜像名和标签
二十二、删除镜像
二十三、确定容器根目录及文件系统在本地系统上挂载
二十四、进入容器并添加内容
二十五、开启一个新容器并在容器中安装ssh服务
二十六、更改源并安装ssh
二十七、在容器中为sshd生成ssh所需的主机密码 二十八、容器的root密码
二十九、获取dockerID和docker名
三十、生成docker镜像 一、什么是docker Docker是一个开源的容器化平台可以让开发人员和系统管理员通过容器的方式来构建、打包、分发和运行应用程序。
Docker最初由公司叫做dotCloud现在已更名为Docker的一群工程师于2013年创建。他们旨在解决传统虚拟化技术的一些痛点如资源占用、启动时间长等问题。他们基于Linux内核的cgroups和命名空间技术开发出了Docker。
Docker的设计理念是使用容器来封装应用程序及其依赖项使其能够在任何环境中都能一致地运行。通过容器化开发人员可以将应用程序及其依赖项打包到一个独立的、可移植的容器中包括操作系统、库、软件工具等。这样就能够确保应用程序在不同环境中具有相同的行为。
Docker的出现解决了开发、测试和部署过程中的许多问题减少了环境配置的复杂性、提高了应用的可移植性和可扩展性。它极大地简化了应用程序的打包和分发过程并通过容器的方式实现了更高效的资源利用。
随着时间的推移Docker变得越来越流行成为了容器化技术的标准和行业领导者。它对于微服务架构、持续集成和部署等现代应用开发和交付模式具有重要的意义。
二、docker的缺陷
尽管Docker在容器化领域取得了巨大的成功和普及但它也有一些缺点和限制 性能损耗与直接在主机上运行应用程序相比Docker容器中的应用程序可能会有一些性能损耗。这是因为容器化引入了额外的隔离和资源管理层。 安全性风险如果容器配置不当或容器内部存在漏洞容器化环境可能会面临一些安全风险。攻击者可能会利用容器逃逸、容器间通信等漏洞进行攻击。 复杂性和学习曲线使用Docker涉及到一些新的概念和工具对于初学者来说可能需要一定的学习曲线。此外复杂的容器集群和编排工具如Kubernetes的使用也需要一定的技术掌握。 资源消耗每个容器都需要一定的资源如内存、磁盘空间在大规模部署或资源有限的环境中这可能会导致资源紧张。 持久化存储Docker容器默认情况下是设计为无状态的容器停止后数据将会丢失。为了实现持久化存储需要额外的配置和管理。
尽管存在这些缺点Docker仍然是非常强大和受欢迎的容器化平台可以在许多不同的应用场景中提供便利和效益。对于大多数用户来说Docker的好处往往超过了其缺点。
三、简单的操作
一、首先配置一台虚拟机 二、安装Docker-CE
一、安装utils
yum install yum-utils -y
二、 将 Docker 的软件源添加到 CentOS 的 yum 仓库中。这样可以通过 yum 命令来安装、更新和管理 Docker 相关的软件包。
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
三、将 download.docker.com 替换为 mirrors.aliyun.com/docker-ce。这个命令的目的是将 Docker 软件源的地址替换为阿里云镜像站点以提高下载速度和稳定性。
sed -i sdownload.docker.commirrors.aliyun.com/docker-ce /etc/yum.repos.d/docker-ce.repo 四、安装docker-ce
yum install docker-ce -y 五、启用并立即启动 Docker 服务。这个命令会将 Docker 服务添加到系统启动项并立即启动 Docker 服务以便可以立即开始使用 Docker。
systemctl enable --now docker 六、显示当前安装的 Docker 版本信息包括 Docker 客户端和服务端的版本号、构建日期等详细信息。
docker version 七、创建一个文件
vim /etc/docker/daemon.json
八、在文件中添加下方的内容
配置 Docker 使用阿里云的镜像站点作为镜像加速器。镜像加速器可以加快 Docker 镜像的下载速度提高容器的创建和部署效率。配置完成后Docker 将自动使用阿里云的镜像站点来加速下载。
{registry-mirrors: [https://3laho3y3.mirror.aliyuncs.com]
}
九、启动docker
systemctl restart docker
三、docker的基本使用
一、在仓库中查找镜像
docker search centos
二、下载镜像
docker pull centos 三、查看本地docker镜像
docker image list 四、调用容器内的命令
在一个基于 CentOS 镜像的容器中运行命令 cat /etc/hosts。
具体解释
docker run 是 Docker 的命令用于创建并启动一个新的容器。-i 参数表示在容器启动后将标准输入stdin连接到容器的标准输入这样可以与容器进行交互。-t 参数表示在容器启动后为容器分配一个伪终端pseudo-TTY以便可以进行交互输入输出。centos 是要使用的容器镜像的名称这里使用的是 CentOS 镜像。cat /etc/hosts 是要在容器内部执行的命令。这个命令会显示容器内 /etc/hosts 文件的内容。
因此这个命令的目的是启动一个基于 CentOS 镜像的容器并在容器内部执行 cat /etc/hosts 命令以查看容器内 /etc/hosts 文件的内容。
docker run -i -t centos cat /etc/hosts 五、进入容器
在一个基于 CentOS 镜像的容器中启动一个交互式的 Bash shell。
具体解释如下
docker run 是 Docker 的命令用于创建并启动一个新的容器。-it 参数表示以交互模式运行容器并分配一个伪终端pseudo-TTY。centos 是要使用的容器镜像的名称这里使用的是 CentOS 镜像。/bin/bash 是要在容器内部执行的命令它启动了一个 Bash shell。
通过执行这个命令Docker会创建一个基于CentOS镜像的容器并切换到容器的交互式的Bash shell终端使用户可以与容器进行交互。这样可以在容器内部执行命令、查看文件、安装软件包等操作。当退出Shell终端时容器也将停止运行。 如果在上图显示的界面输入exit的话则直接退出容器 六、容器正常运行
如果想让容器正常运行的话在输入 docker run -it centos /bin/bash 后
按住ctrl键不要松手在摁p键和q键 则会出现
一个伪终端 摁下回车则成功的锁定容器并在容器内执行一些命令及操作退出但是可以使容器正常运行 七、定义内存大小
在一个基于 CentOS 镜像的容器中以交互模式启动一个 Bash shell并且限制容器的内存使用量为300MB。
docker run -it -m 300M --memory-swap 300M centos /bin/bash
八、查看正在运行的容器
docker ps
显示up的都是正在启动 九、确定被锁定的容器信息
docker stats 输入显示ID的前四个字符 十、限制容器只能使用1个CPU
docker run -it -m500m --cpus1 centos /bin/bash
十一、限制容器在CPU上第一 第二核心上使用资源
docker run -it --cpuset-cpus0,1 centos /bin/bash
十二、限制容器使用磁盘I/O
docker run -it --device-write-bps /dev/sda:30MB centos /bin/bash
十三、查看所有的容器包括已经退出的
docker ps -a
状态为UP的则正启动的其他则为未启动 十四、停止和启动容器
用第一个容器举例现在是正在启动的状态关闭容器
docker kill 7e92 查看状态
docker ps -a
成功关闭容器 如要开启则输入
docker start 7e92 成功启动 十五、删除以退出的容器
以23f9 为例 现在是正在关闭和退出的状态输入命令 docker rm 23f9
查看状态
docker ps -a
成功删除 十六、删除已退出的容器及正在运行的容器
docker rm $(docker ps -a | awk {print $1} | sed 1d) -f
十七、为容器命名为snowmpy
docker run -itd --name snowmpy centos /bin/bash 成功创建一个名为snowmpy的容器 十八、输入容器信息并导出容器
docker logs snowmpy
docker export snowmpy mpy.tar
ls -l mpy.tar 十九、导入容器
cat mpy.tar | docker import - mpy:test 的意思是通过管道|将文件 mpy.tar 的内容导入到 Docker 中并创建一个名为 mpy:test 的镜像。
cat mpy.tar | docker import - mpy:test
列出本地的镜像列表
docker image list
二十、指定docker的其他各种参数
docker run -ti --name gzliu -h server --dns-search1000cc.net --dns8.8.8.8 --dns8.8.4.4 centos:latest /bin/bash 二十一、更改镜像名和标签
列出本地的镜像列表
docker images
给一个已有的镜像打上新的标签。
mpy:test 是已有的镜像名称和标签。mpy:ok 是新的镜像名称和标签。
通过执行这个命令Docker 会在已有镜像的基础上创建一个新的镜像标签 mpy:ok两个标签实际上指向同一个镜像。这样可以方便地给镜像创建不同的标签用于版本管理或其他需求。新的标签可以用于识别和使用相同镜像的不同版本或变体。
docker tag mpy:test mpy:ok
docker images
二十二、删除镜像
docker rmi mpy:test 二十三、确定容器根目录及文件系统在本地系统上挂载
docker run -d -h websrv --name websrv -p 80:80 nginx 二十四、进入容器并添加内容 docker exec -it websrv /bin/bash以交互式的方式进入名为websrv的Docker容器并以bash作为默认的shell。 echo hello world /usr/share/nginx/html/index.html将字符串hello world写入到文件/usr/share/nginx/html/index.html中。
换句话说这个命令的目的是在容器中的/nginx/html目录下创建一个名为index.html的文件并在其中写入字符串hello world。
docker exec -it websrv /bin/bash
rootwebsrv:/# echo hello world /usr/share/nginx/html/index.html
输入 exit 退出并docker ps查看显示成功挂载 该命令用于获取有关名为websrv的Docker容器的详细信息。它返回一个JSON格式的输出其中包含有关容器的各种属性如IP地址、挂载点、网络配置等。
docker inspect websrv
输入后再显示内容中找到 并复制第一行内容路径并输入
cd //var/lib/docker/overlay2/42ad29142a56ec09fc588eac31069f5652fc4926c5f2c7052cafc94fef0fc0a9/merged/usr/share/nginx/html
是容器的文件系统路径其中包含了容器内部的文件和目录。这条命令的目的是将当前的工作目录切换到容器内的/nginx/html目录以便进行操作。
二十五、开启一个新容器并在容器中安装ssh服务
docker run --name snowchuai -h snow -it centos /bin/bash
这段命令是用来在 Docker 中运行一个名为 snowchuai 的容器容器的主机名设置为 snow并且以交互模式运行 CentOS 镜像并启动一个 bash shell。
具体说明如下
docker run在 Docker 中运行一个容器--name snowchuai给容器指定一个名称 snowchuai-h snow设置容器的主机名为 snow-it以交互模式运行容器centos使用 CentOS 镜像作为容器的基础镜像/bin/bash在容器内启动一个 bash shell。这意味着你可以在容器内执行命令和操作。
这个命令的作用是创建一个 CentOS 容器并进入到容器内部的 bash shell 中进行后续操作。
二十六、更改源并安装ssh
这个源是有问题的需要更改两个源 所以需要进入
cd /etc/yum.repos.d/
首先进入
vi CentOS-Linux-AppStream.repo
将里面内容更改为
# CentOS-Linux-AppStream.repo
#
# The mirrorlist system uses the connecting IP address of the client and the
# update status of each mirror to pick current mirrors that are geographically
# close to the client. You should use this for CentOS updates unless you are
# manually picking other mirrors.
#
# If the mirrorlist does not work for you, you can try the commented out
# baseurl line instead.[appstream]
nameCentOS Linux $releasever - AppStream
mirrorlisthttp://mirrorlist.centos.org/?release$releaseverarch$basearchrepoAppStreaminfra$infra
baseurlhttps://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/AppStream/$basearch/os/
gpgcheck1
enabled1
gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial进入第二个
vi CentOS-Linux-BaseOS.repo
内容更改为
# CentOS-Linux-BaseOS.repo
#
# The mirrorlist system uses the connecting IP address of the client and the
# update status of each mirror to pick current mirrors that are geographically
# close to the client. You should use this for CentOS updates unless you are
# manually picking other mirrors.
#
# If the mirrorlist does not work for you, you can try the commented out
# baseurl line instead.[baseos]
nameCentOS Linux $releasever - BaseOS
mirrorlisthttp://mirrorlist.centos.org/?release$releaseverarch$basearchrepoBaseOSinfra$infra
baseurlhttp://mirrors.tuna.tsinghua.edu.cn/centos/8-stream/BaseOS/$basearch/os/
gpgcheck1
enabled1
gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
更改后 输入安装命令
yum install openssh openssh-server passwd -y 成功安装 二十七、在容器中为sshd生成ssh所需的主机密码
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -q -N
-t rsa指定生成 RSA 类型的密钥对-f /etc/ssh/ssh_host_rsa_key指定保存 RSA 密钥的文件路径为 /etc/ssh/ssh_host_rsa_key-q指定以静默模式生成密钥对不输出额外信息-N 设置私钥的密码为空
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -q -N
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -q -N
-t ecdsa指定生成 ECDSA 类型的密钥对-f /etc/ssh/ssh_host_ecdsa_key指定保存 ECDSA 密钥的文件路径为 /etc/ssh/ssh_host_ecdsa_key-q指定以静默模式生成密钥对不输出额外信息-N 设置私钥的密码为空
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -q -N ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -q -N
-t ed25519指定生成 Ed25519 类型的密钥对-f /etc/ssh/ssh_host_ed25519_key指定保存 Ed25519 密钥的文件路径为 /etc/ssh/ssh_host_ed25519_key-q指定以静默模式生成密钥对不输出额外信息-N 设置私钥的密码为空
这些命令将生成三对不同类型的 SSH 密钥对用于在 SSH 通信中进行身份验证和加密。这些密钥对分别是 RSA、ECDSA 和 Ed25519 类型的密钥对。生成的公钥和私钥将保存在指定的文件中私钥的密码被设置为空。
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -q -N 二十八、容器的root密码
passwd
设置密码后退出容器 exit
二十九、获取dockerID和docker名
dockerid$(docker ps -a | awk {print $1} | sed 1d) echo $dockerid 三十、生成docker镜像
输入命令登录回容器
docker run -it -m 300M --memory-swap 300M centos /bin/bash
查看所有容器
docker ps -a
找到设置好的snowmpy 输入生成docker镜像的命令 将中间改为ID
docker commit -m centos-ssh 5b0eca08b488 mpy/centos-sshd docker image list
查看结果