文章目录
Docker容器(配置+镜像建立及优化)
一.简介
Docker是什么
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进 程,因此也称其为容器。Docke最初实现是基于 LXC.
docker是一个供开发人员和系统管理员使用容器构建、运行和共享应用程序的平台。使用容器部署应用程序称为容器化
Docker容器的特点
轻量:更快速的启动时间
在一台机器上运行的多个 Docker 容器可以共享这台机器的操作系统内核;它们能够迅速启动,只需占用很少的计算和内存资源。
标准:一致的运行环境
Docker 容器基于开放式标准,能够在所有主流 Linux 版本、Microsoft Windows 以及包括 VM、裸机服务器和云在内的任何基础设施上运行,Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性。同时,由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易;而不用担心运行环境的变化导致应用无法正常运行的情况。
安全:隔离性
Docker 赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker 默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台机器。
连贯:持续交付和部署
使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过 Dockerfile 来进行镜像构建,并结合 持续集成(Continuous Integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合 持续部署(Continuous Delivery/Deployment) 系统进行自动部署。
二、容器配置
1.搭建docker仓库
搭建docker仓库,方便后续组件安装
[root@server1 ~]# cd /etc/yum.repos.d/
[root@server1 yum.repos.d]# vim westos.repo
[root@server1 yum.repos.d]#
[docker]
name=docker-ce
baseurl=http://172.25.6.250/docker-ce
gpgcheck=0
[root@server1 ~]# yum repolist
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
docker | 3.0 kB 00:00:00 dvd | 4.3 kB 00:00:00 docker/primary_db | 14 kB 00:00:00 repo id repo name status
docker docker-ce 20
dvd rhel7.6 5,152
repolist: 5,172
2.下载docker-ce ,开启服务,并开机自启
[root@server1 ~]# yum install -y docker-ce
[root@server1 ~]# systemctl start docker
[root@server1 ~]# systemctl enable --now docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
3.查看docker 信息
[root@server1 ~]# docker info ##出现报错
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
[root@server1 ~]# cd /etc/sysctl.d
[root@server1 sysctl.d]# ls
99-sysctl.conf
[root@server1 sysctl.d]# vim docker.conf ##编辑此文件解决报错
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
[root@server1 sysctl.d]# sysctl --system ##生效
dcoker-ce服务启动之后,出现docker0,ip
[root@server1 sysctl.d]# ip a ##出现docker0,ip
容器的使用测试
[root@server1 ~]# docker load -i mario.tar ##本地加载mario应用镜像
,此镜像可以使用:dcoker pull 命令直接下载
[root@server1 ~]# docker run -d --name demo -p 80:8080 mario ##开启demo容器,使用mario应用镜像
f03d4ece9ed2e8deee25cd434d190b908adb625e90667cb189a6405d6a751905
注:在网页中输入:172.25.6.1,可进入游戏mario
[root@server1 ~]# ls
mario.tar
[root@server1 ~]