目录
一、Docker简介
Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)更重要的是容器性能开销极低。
Docker支持将软件编译成镜像;在镜像中支持各种软件配置好并发布,其他使用者可以直接使用配置好的镜像。
运行中的镜像称之为容器,容器启动速度很快。类似于封装好的Windows系统,通过U盘直接安装即可,不需要进行系统配置软件
Docker的应用场景:
Web应用的自动化打包发布;
自动化测试和持续集成、发布;
在服务型环境中部署调整数据库或其他的后台应用;
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
Docker的优点:
快速、一致性的交付应用程序
响应式部署和扩展
充分利用虚拟机资源
二、Docker核心概念
Docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统中)
Docker客户端(Client):连接Docker主机进行操作;
Docker容器(Container):镜像启动后的实例,独立运行的一个或一组应用;
Docker镜像(Image):打包好的软件,用于创建Docker容器的模板;
Docker仓库(Respository):用于保存打包好的软件镜像;
Docker的基本使用方式:
① 在机器中安装Docker;
② 在Docker仓库中寻找这个软件对应的镜像;
③ 使用Docker运行镜像,生成一个Docker容器;
④ 容器的启动或停止相当于对软件的启动和停止;
三、Docker的搭建
要求 CentOs7 系统的内核版本高于 3.10,可通过如下指令查看版本
uname -r
1、更新yum
安装docker ce即社区免费版,先安装必要的软件包,安装yum-utils,它提供一个yum-config-manager单元,
同时安装的device-mapper-persistent-data和lvm2用于储存设备映射(devicemapper)必须的两个软件包。
sudo yum update
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2、配置一个稳定(stable)的仓库
紧接着配置一个稳定(stable)的仓库 ,仓库配置会保存到/etc/yum.repos.d/docker-ce.repo文件中。此处我们使用阿里云。
sudo yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、更新Yum安装的相关Docke软件包
sudo yum makecache fast
出现如下错误:
yum makecache: error: argument timer: invalid choice: ‘fast’ (choose from ‘timer’)
更新索引的时候出错,即centos8没有该参数,解决办法为:去掉fast参数
sudo yum makecache
4、查看仓库版本,并指定版本安装
(1)查看版本
yum list docker-ce –showduplicates | sort -r
(2)安装yum install -y docker-ce docker-ce-cli 最新的版本
yum install -y docker-ce docker-ce-cli
出现如下错误:
Problem: package docker-ce-3:18.09.9-3.el7.x86_64 requires containerd.io >= 1.2.2-3,
【根据提示,需要containerd.io的版本 >= 1.2.2-3】
Package: 3:docker-ce-20.10.8-3.el7.x86_64 (docker-ce-stable) Requires: container-selinux >= 2:2.74
【根据提示,需要container-selinux的版本>= 2:2.74】
Package: docker-ce-rootless-extras-20.10.8-3.el7.x86_64 (docker-ce-stable) Requires: fuse-overlayfs >= 0.7
【根据提示,需要fuse-overlayfs的版本>= 0.7】
Package: docker-ce-rootless-extras-20.10.8-3.el7.x86_64 (docker-ce-stable) Requires: slirp4netns >= 0.4
【根据提示,需要slirp4netns的版本>= 0.4 】
A、下载container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm安装包并安装
wget http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
yum -y install container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
B、下载slirp4netns和fuse-overlayfs
cd /etc/yum.repos.d
vi yum.repo
在yum.repo头部加入以下内容:
[centos-extras]
name=Centos extras – $basearch
baseurl=http://mirror.centos.org/centos/7/extras/x86_64
enabled=1
gpgcheck=0
yum -y install slirp4netns fuse-overlayfs
C、下载containerd.io-1.3.7-3.1.el8.x86_64.rpm并安装
yum erase podman buildah【不一定要执行】
wget http://docker-release-purple-prod.s3-website-us-east-1.amazonaws.com/linux/centos/8/x86_64/edge/Packages/containerd.io-1.3.7-3.1.el8.x86_64.rpm
yum -y install containerd.io-1.3.7-3.1.el8.x86_64.rpm
yum -y install containerd.io-1.2.6-3.3.el7.x86_64.rpm
D、重新安装docker-ce
yum install docker-ce
(3)卸载:
yum list installed | grep docker
yum remove 移除需要卸载的组件
5、启动docker:
(1)启动docker服务
我们执行docker info看看结果,如果出现如下警告:
Server:
ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon runming?
那是docker服务没有启动,解决办法:
sudo systemctl start docker
设置为开机自启动:
sudo systemctl enable docker
可:
sudo systemctl start docker && sudo systemctl enable docker
(2)验证查看版本
docker version
(3)查看docker运行状态
systemctl status docker
四、Docker常用的命令
1、安装Nginx
docker pull nginx
2、拉取镜像:
docker pull busybox
拉取镜像慢,配置加载镜像地址:
{
“registry – mirrors “: [“https: //ebkn7ykm.mirror.aliyuncs.com”,
“https: //docker.mirrors.ustc.edu.cn”,
“http: //f1361db2.m.daocloud.io”,
“https: //registry.docker-cn.com”
]
}
3、查看镜像列表:
docker images
4、前端界面新增一个容器(我们一般不用前端,用后端)
docker run +名字+nginx镜像列表对应的ID
docker run –name nginx-container 605c77e624dd
5、后端界面新增一个容器,用以下命令:加上-d
docker run -d –name nginx-container 605c77e624dd
(1)docker ps可以看到我们新建的容器。
(2)如果我们想新建的时候给它做个端口映射:+ “-P”【大写】
docker run -d -P –name nginx-container-1 605c77e624dd
使用docker ps查看到nginx-container-1的PORTS为0.0.0.0:49153->80/tcp, :::49153->80/tcp,浏览器使用http://ip地址:49153来登录nginx页面。
(3)上面端口是随机的,我们也可以指定端口:
docker+run+-d(后端运行)+-p(小写) +对应端口+名称+nginx:latest(镜像列表的名字)
docker run -d -p 12300:80 –name nginx-container-2 nginx:latest
使用docker ps查看到nginx-container-2的PORTS为 0.0.0.0:12300->80/tcp, :::12300->80/tcp ,浏览器使用http://ip地址:12300来登录nginx页面。
(4)使用docker stop nginx-container-2来暂停容器运行。
使用docker start nginx-container-2来开始容器运行。
使用docker restart nginx-container-2来重新开始容器运行。
docker rename nginx-container-1 nginx-container-2将容器1命名为容器2。
(5)docker rm -v nginx-container-2来删除容器。
(6)docker ps -a查看各个容器状态。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/106867.html