Docker安装配置使用

一,docker安装配置

1.环境和介绍

①Docker是在Linux的内核上启动的,所以我们需要一个Linux环境,这里我们需要准备一台安装Linux系统连接上网络的虚拟机,镜像选择centos7及以上。

②现在docker的已经非常广泛的使用于开发测试,其优势在于docker使用的抽象层更少,利用的是宿主机的内核,而不需要加载操作,占用的内存不多,兼容性更强,不用在开发测试重复的安装环境设置,只需要整个打包即可,通过图1-1我们可以看出docker的基本情况。

图1-1docker原理

2.docker安装配置

2.1卸载任何此类旧版本

首先如果是已经下载过了重新下载,先卸载任何此类旧版本以及关联的依赖项输入

sudo yum remove docker \ #sudo是因为权限问题,如果是root直接不用

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

2.2根据需要以不同的方式安装 Docker 引擎

①可以设置 Docker 的存储库并安装,从官网那里,以便于安装和升级任务,我们选择这种方法安装。

②可以下载 RPM 软件包并手动安装并管理,完全手动升级。这在安装等情况下很有用,在无法访问互联网的气隙系统上的 Docker。

③在测试和开发环境中,您可以使用自动化的便利脚本来安装 Docker。

2.3安装软件包并设置存储库

①安装软件包

yum install -y yum-utils

②设置存储库,更新yum源防止出现找不到包的情况,我们更新成阿里云的存储库,如何更新包索引

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache fast #更新包索引

问题:报错curl#35 - tcpconnection reset by peer和curl#35 - Timeout

解决:更新源的时候注意尽量不要选择外网的源,选择国内的源即可

2.4安装 Docker Engine-Community

输入yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

如果系统提示接受GPG 密钥,请验证指纹是否匹配,如果是,请接受它。

2.5启动Docker

启动docker并且查看情况,因为每次启动都可能存在失败的情况,要随时查看情况,如图2-1所示。

systemctl start docker #启动

ps -ef|grep docker#查看启动情况

图2-1启动docker查看情况

2.6测试

运行一个简单的程序,输入docker run hello-world,然后查看程序的内容docker version,其运行原理如图2-2所示

图2-2run的情况

2.7镜像加速器配置

在实际的环境下,我们需要镜像加速来更快的运行,发布也需要镜像加速器的配置,所以我们需要一个阿里云镜像加速,我们首先注册一个阿里云账户,然后找到容器镜像服务,获取自己的加速器地址,通过修改daemon配置文件/etc/docker/daemon.json来使用加速器,如图2-3所示

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://xhhyxkzw.mirror.aliyuncs.com"]

}

EOF

图2-3阿里云镜像

二,docker常用命令

1.帮助启动类命令如图1-1所示

图1-1帮助启动命令

2.镜像命令

我们经常需要查看镜像的情况,所以我们需要了解基本的命令:

Docekr images #列出本地主机上的镜像

Docker search 镜像名字 #查看是否有镜像在安装下载过程等使用

Dcoker pull 镜像名字 #拉取镜像到docker上

Docker sysytem df 查看镜像/容器/数据卷所占用的空间

Docker rmi 镜像id

3.容器命令

①新建与启动

有镜像才能创建容器,这是根本前提,有些时候启动docker的软件时候,我们希望输入一些命令,来查看情况等等,比如mysql,这个时候就需要启动交互式容器的方式(前台),也有需要后台启动的容器比如redis。

docker run -it 镜像 #启动容器

docker run ubuntu #运行ubuntu容器

docker run -it ubuntu /bin/bash #通过启动交互式启动

docker run -it --name=myu1 ubuntu /bin/bash #通过启动交互式启动赋予名字

dcoker ps #查看当前启动的容器

docker tun -d 镜像

docker run -d redis:6.0.8 #守护式启动redis后台服务器

②容器的退出重启

Exit #run进去,exit退出,容器停止

Ctrl+p+q #run进去,ctrl+p+q退出,容器不停止

docker start容器id #启动已经停止的容器

Dcoker restart 容器id/容器名 #启动已停止运行的容器

Docker kill #强制停止容器

Docker rm 容器id #删除已停止的容器

③容器日志

我们日常需要随时监控容器情况

docket logs 镜像 #查看容器日志

docker top 镜像 #查看容器的进程

docker inspect 容器id #查看容器内部细节

④启动容器并且以命令行交互的方式

docker exec -it 容器id bashshell #以命令行交互进入容器,退出不会关闭容器

docker attach 容器id #以命令行交互进入容器,退出会关闭容器

同理后台服务器的方式如图3-1所示

图3-1后台服务器

⑤从容器拷贝到主机,导入导出

docker cp 容器id:容器内的路径 目的的主机路径 #如图3-2所示

图3-2拷贝

export 导出容器的内容留作为一个tar归档文件

docker export 容器id > 文件名.tar

import 导入从tar包中的内容创建一个新的文件系统

cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

三,镜像分层概念

①因为dcoker是分层的结构,所以我们可以通过相同base镜像构建,添加其他的内容,我们只需要加载一份镜像就可以使用所有容器服务了。镜像层是只读的,容器层是可写的,如图1-1所示。

图1-1所示分层概念

②我们来做一个简单的dcoker镜像commit操作案例

Dcoker commit提交容器副本使之成为一个新的镜像

Docker commit -m=’提交的描述信息’-a=’作者’容器id要创建的目标镜像名:[标签名]

我们先下载ubuntu到本地并成功运行,输入docker run-it ubantu /bin/bash进入交互后,我们发现它没有vim功能,我们来添加此功能,输入App-get update更新我们的包管理工具,然后安装我们需要的vim输入Apt-get install vim这样就完成了添加功能的操作,我们在通过Docker commit -m=’提交的描述信息’-a=’作者’容器id要创建的目标镜像名:[标签名]操作让其成为一个新的包,如图1-2

Docker images

图1-2commit操作

四,本地镜像发布

1.上传到阿里云流程

流程如图1-1所示:

图1-1上传流程

2.公有库与私有库

首先我们基于当前创建一个新的镜像,新功能增强docker commit[optoons]容器id[repository[:TAG]],然后进入网页的阿里云镜像仓库,创建镜像可以选择创建公有库与私有库,如图1-2所示。

图1-2创建仓库

①登录阿里云Docker Registry

$ docker login --username=dingtalk_hykihf registry.cn-guangzhou.aliyuncs.com

用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。可以在访问凭证页面修改凭证密码。

② 从Registry中拉取镜像

$ docker pull registry.cn-guangzhou.aliyuncs.com/wys201229/wys201229:[镜像版本号]

③ 将镜像推送到Registry

$ docker login --username=dingtalk_hykihf registry.cn-guangzhou.aliyuncs.com$ docker tag [ImageId] registry.cn-guangzhou.aliyuncs.com/wys201229/wys201229:[镜像版本号]$ docker push registry.cn-guangzhou.aliyuncs.com/wys201229/wys201229:[镜像版本号]

根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

④选择合适的镜像仓库地址

从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗公网流量,如果使用的机器位于VPC网络,使用 registry-vpc.cn-guangzhou.aliyuncs.com 作为Registry的域名登录。

⑤示例

使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。

$ docker imagesREPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEregistry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB$ docker tag 37bb9c63c8b2 registry-vpc.cn-guangzhou.aliyuncs.com/acs/agent:0.7-dfb6816

使用 "docker push" 命令将该镜像推送至远程。

$ docker push registry-vpc.cn-guangzhou.aliyuncs.com/acs/agent:0.7-dfb6816

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值