当前位置:首页 > 服务端 > (Docker)01

(Docker)01

2022年11月08日 10:04:20服务端6

一、Dokcer

中文:码头工人
在当前技术领域。容器虚拟化技术 还不太成熟 但是是未来的一种流行趋势。也是一种势在必行的发展技术。

容器不需要模拟层(emulation layer)和管理层(hypervisor layer),而是使用操作系统的系统调用接口。这降低了运行单个容器所需的开销,也使得宿主机中可以运行更多的容器。
 容器虚拟化的是操作系统而不是硬件,容器之间是共享同一套操作系统资源的。虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统。

(Docker)01 _ JavaClub全栈架构师技术笔记
Docker版本:
社区版
企业版

二、安装:在Centos

前提条件

目前,CentOS 仅发行版本中的内核支持 Docker。
Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为2.6.32-431 或者更高版本。

(Docker)01 _ JavaClub全栈架构师技术笔记

  1. 卸载旧版本
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  1. 安装依赖
yum -y install gcc
yum -y install gcc-c++
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  1. 设置镜像库
    官方镜像(不推荐)
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

阿里镜像(推荐)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 更新yum软件包索引
yum makecache fast
  1. 安装dokcer CE
yum install docker-ce docker-ce-cli containerd.io
  1. 启动docker容器
systemctl start docker
  1. 测试
docker run hello-world

(Docker)01 _ JavaClub全栈架构师技术笔记

  1. docker的其他命令
查看版本信息
docker version
查看docker的状态
systemctl status docker
查看docker的详细信息
docker info
docker的启动
systemctl start docker
docekr 停止
systemctl stop docker
重启
systemctl restart docker
将docker 设为开机启动的
systemctl enable docker
  1. docker的卸载
yum remove docker-ce
rm -rf /var/lib/docker

三、docker的架构

(Docker)01 _ JavaClub全栈架构师技术笔记

四、docker镜像操作

Docker 镜像是容器的基础。镜像是一个有序集合,其中包含根文件系统更改和在容器运行时中使用的相应执行参数。镜像通常 包含堆叠在彼此之上的联合分层文件系统。镜像没有状态并且始终不会发生更改。 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。

4.1. 查找镜像

docker search centos

4.2. 拉取镜像

docker  pull 镜像名称:[镜像版本,可省略 省略则为最新版]

(Docker)01 _ JavaClub全栈架构师技术笔记
为了解决国内下载过慢 配置阿里的镜像加速器
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
(Docker)01 _ JavaClub全栈架构师技术笔记
(Docker)01 _ JavaClub全栈架构师技术笔记

docker pull centos

4.3.查看容器中所有的镜像

(Docker)01 _ JavaClub全栈架构师技术笔记

4.4. 删除镜像:

docker rmi 镜像名/id  #删除单个镜像
docker rmi 镜像名/id   镜像名/id  镜像名/id #删除多个镜像
docker rmi -f $(docker images -qa) #删除所有镜像

五、容器的操作

容器是docker镜像在运行时产生的对象实例。 一个镜像可以产生多个容器
要产生容器 必须要先有镜像。

5.1.创建容器

docker run [options] image command [ARG...]

OPTIONS说明(常用):有些是一个减号,有些是两个减号
–name=“容器新名字”: 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P: 随机端口映射;
-p: 指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
(Docker)01 _ JavaClub全栈架构师技术笔记
(Docker)01 _ JavaClub全栈架构师技术笔记

5.2. 查看容器

(Docker)01 _ JavaClub全栈架构师技术笔记

5.3. 进入容器

方式一:
(Docker)01 _ JavaClub全栈架构师技术笔记
方式二:
(Docker)01 _ JavaClub全栈架构师技术笔记

5.4. 启动容器

 docker start c3

5.5. 停止容器

docker stop c3

5.6.退出容器

exit 容器停止退出(与进入方式有关)
ctrl+p+Q  容器不停止退出

5.7. 获取容器/镜像的元数据

docker inspect c3

5.8. 删除容器

前提:删除不能删除运行中的容器

docker rm 容器名称/id  #删除一个容器
docker rm 容器名称/id   容器名称/id  容器名称/id  删除多个容器
docker rm -f $(docker ps -qa)) #删除所有容器

5.9.查看容器的日志

docker logs 容器名称/id

5.10. 文件拷贝

从宿主机到容器

docker cp test.txt c1:/root
docker cp  需要拷贝的目录或文件  容器名称/id:目标路径

从容器到宿主机

[root@localhost ~]# docker cp c1:/root/hello.txt /root

5.11. 目录挂载

在创建容器的时候 将宿主机的目录与容器内的目录进行映射,这样之后 就可以通过修改宿主机的目录来影响容器内对应的目录

docker run -itd --name=c2 -v /opt:/usr/local/testopt centos
#将宿主机中的opt目录和容器内的/usr/local/testopt目录做一个映射 也成为挂载

如果挂载的时多级目录 有可能会出现权限不足的问题
(Docker)01 _ JavaClub全栈架构师技术笔记
这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题

docker run ‐itd ‐‐privileged=true  --name=c3 -v /opt:/usr/local/testopt

作者:kanoすき
来源链接:https://blog.csdn.net/weixin_45801537/article/details/105245008

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68475.html

分享给朋友:

“(Docker)01” 的相关文章

解决方案仅用于执行startup.bat启动时乱码解决

解决方案仅用于执行startup.bat启动时乱码解决

目录 1.首先要知道的是,中文乱码一定是编码方式不一致导致的(废话...) 2.其次我们要找到T...

python实现——处理Excel表格(超详细)

python实现——处理Excel表格(超详细)

目录 xls和xlsx 基本操作 1:用openpyxl模块打开Excel文档,查看所有sheet表 2.1:通过sheet名称获取表格...

[C++]VC自定义发IP包例子

/************************************ *自定义发IP包例子(TCP/IP包发送) *给目标主机的端口发送一个 syn请求, *注意目标主机的信息会发给发送IP地址的主机 *这说明TCP/IP协议本身有IP期骗的漏洞 *这种方运可以自己写成...

吐血整理《计算机网络五层协议之物理层(下)》

吐血整理《计算机网络五层协议之物理层(下)》

吐血整理《计算机网络五层协议之物理层(上)》 吐血整理《计算机网络五层协议之物理层(中)》 绝知此事要躬行! 物理层(下篇) 1.数字传输系统 1.1PCM的基本原理...

Logger打印等级设置

示例:Logger.getLogger("org").setLevel(Level.WARN)...

Java日志框架那些事儿

Java日志框架那些事儿

在项目开发过程中,我们可以通过 debug 查找问题。而在线上环境我们查找问题只能通过打印日志的方式查找问题。因此对于一个项目而言,日志记录是一个非常重要的问题。因此,如何选择一个合适的日志记录框架也非常重要。在Java开发中,常用的日志记录框架有JDKLog、Log4J、LogBack、SLF4J...

ubuntu 20.04修改数据源配置

ubuntu 20.04修改数据源配置

Ubuntu安装完毕之后,默认的源是Ubuntu自己的,但毕竟Ubuntu服务器在国外,我们访问起来会比较慢,可以将软件源切换为国内源,比如:阿里源,清华源,中科大源等等。在这边以清华源为例,其它源也是一样的道理。 1 切换源之前先把配置文件备份一...

计算机网络基础必备(三次握手,四次握手,以及HTTP协议相关)

计算机网络基础必备(三次握手,四次握手,以及HTTP协议相关)

目录 一、计算机网络 通信协议 网络模型 二、TCP/IP...

Python "爬虫"出发前的装备之一正则表达式

1. 正则表达式 正则表达式是一种模板表达式语言 通过定义规则去匹配、查找、替换、分割一个长字符串中特定的子字符信息。 如在一篇文章中查找出所有合法的电子邮箱地址,则可以先用正则表达式定义一个电子邮箱规则,然后再使用这个规则在整个字符串中查找。 爬虫程序一般都会...

Python  一网打尽<排序算法>之堆排序算法中的树

Python 一网打尽<排序算法>之堆排序算法中的树

本文从树数据结构说到二叉堆数据结构,再使用二叉堆的有序性对无序数列排序。 1. 树 树是最基本的数据结构,可以用树映射现实世界中一对多的群体关系。如公司的组织结构、网页中标签之间的关系、操作系统中文件与目录结构……都可以用树结构描述。 树是由结点以及结点之间的关系所构...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。