Docker安装及DOcker镜像
·
一.Linux安装Docker
1.安装Docker
[root@master ~]# yum -y install docker
2.查看Docker版本
[root@master ~]# docker version
3.运行Docker
[root@master ~]# systemctl start docker
4.检查运行状态
[root@master ~]# systemctl status docker
5.设置开机自启
[root@master ~]# systemctl enable docker
6.验证Docker是否能运行
[root@master ~]# docker run hello-world
二.镜像的本质
1.通过Docker拉取一个base镜像并查看
[root@master ~]# docker pull centos
[root@master ~]# docker images centos
2.查询宿主机Kernel版本信息
[root@master ~]# uname -r
3.进入Centos base的镜像
[root@master ~]# docker run -it centos
4.查看Centos base镜像的Kernel版本信息
[root@1b47088c2e9e /]# uname -r
5.从官方仓库下载ubuntu 15.04镜像
[root@master ~]# docker pull ubuntu:15.04
6.查看本地镜像
[root@master ~]# docker images
7.查看镜像的构建过程
[root@master ~]# docker history d1b55fd07600
8.验证本地镜像的储存路径
[root@master ~]# docker info | grep "Docker Root Dir"
9.从本地镜像中寻找符合生产条件的镜像
[root@master ~]# docker images -a
10.显示本地所有镜像ID号
[root@master ~]# docker images -q
11.使用不截断模式显示完整的镜像ID号
[root@master ~]# docker images --no-trunc
三.构建镜像
1.使用dockker commit命令构建镜像
(1)启动一个Centos的容器
[root@master ~]# docker run -it centos /bin/bash
(2)在容器中安装Vim并退出
[root@f1911264e931 /]# yum -y install vim
注:如遇到如下问题
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
则说明(1)网络连接出问题;(2)Centos已经停止维护的问题
解决办法:
(1)进入yum的repos目录
[root@f1911264e931 /]# cd /etc/yum.repos.d/
(2)修改centos文件内容
[root@f1911264e931 yum.repos.d]# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
[root@f1911264e931 yum.repos.d]# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
(3)生成缓存更新
[root@f1911264e931 yum.repos.d]# yum makecache
(4)运行yum update 并重装vim
[root@f1911264e931 yum.repos.d]# yum update -y
[root@f1911264e931 yum.repos.d]# yum -y install vim
(3)在Centos镜像的基础上创建新的镜像
[root@master ~]# docker ps
[root@master ~]# docker commit interesting_kepler centos/vim
[root@master ~]# docker images
(4)将镜像运行成容器,查询vim路径
[root@master ~]# docker run -it 8b4 /bin/bash
[root@1abd3349f289 /]# which vim
2.使用DOckerfile构建镜像
(1)在Root目录创建Dockerfile文件
[root@master ~]# touch Dockerfile
[root@master ~]# ls
[root@master ~]# pwd
(2)向Dockerfile文件中添加内容
[root@master ~]# vi Dockerfile
添加一下内容:
FROM centos
RUN rm -rf /etc/yum.repos.d/*
RUN curl -o /etc/yum.repos.d/Centos-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
RUN yum clean all & yum makecache
RUN yum -y install vim
Run yum -y install chrony
(3)使用Dockerfile文件创建镜像
[root@master ~]# docker build -t centos/vim-dockerfile .
(4)为Dockerfile文件添加内容,安装ntp服务
[root@master ~]# vi Dockerfile
FROM centos
RUN rm -rf /etc/yum.repos.d/*
RUN curl -o /etc/yum.repos.d/Centos-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
RUN yum clean all & yum makecache
RUN yum -y install vim
RUN yum -y install chrony
RUN yum -y install ntp*
(5)使用Dockerfile安装含有ntp服务的镜像
[root@master ~]# docker build -t centos/vim/ntp-dockerfile .
四.Docker Hub
1.docker search参数运用
(1)使用docker search命令从镜像仓库中查找所需镜像
[root@master ~]# docker search centos
(2)搜索不小于3星,描述不截断,镜像名中包含centos的镜像
[root@master ~]# docker search --filter=stars=3 --no-trunc centos
(3)IS-AUTOMATED 是否自动构建
[root@master ~]# docker search --filter is-automated=true centos
(4)IS-OFFICIAL 是否官方镜像
[root@master ~]# docker search --filter is-official=true --filter stars=3 centos
(5)显示完整的镜像描述
[root@master ~]# docker search --no-trunc centos
2.镜像推送
(1)登录Docker Hub账号
[root@master ~]# docker login
(2)给镜像添加标签
[root@master ~]# docker tag centos/vim-dockerfile changjian/centos-vim:latest
(3)向Docker Hub推送镜像
[root@master ~]# docker push changjian/centos-vim
3.Docker镜像优化
(1)base镜像优化
分别拉取Alpine与BusyBox的镜像进行对比
[root@master ~]# docker pull busybox
[root@master ~]# docker pull alpine
[root@master ~]# docker images
(2)Dockerfile优化
a.编辑Dockerfile文件
[root@master ~]# vi Dockerfile
添加以下内容
RUN yum -y install wget
RUN yum -y install net-tools
RUN yum -y install nano
RUN yum -y install httpd
EXPOSE 80
CMD systemctl start httpd
b.使用这个Dockerfile构建一个新镜像
[root@master ~]# docker build -t centos/vim-bulky .
c.查看新镜像UnionFS层数
[root@master ~]# docker history e2ed
d.对Dockerfile进行优化
进行如下更改
RUN yum -y install wget && \
yum -y install net-tools && \
yum -y install nano && \
yum -y install httpd
EXPOSE 80
CMD systemctl start httpd
e.使用优化过的Dockerfile构建新镜像
[root@master ~]# docker build -t centos/vim-portable .
f.查看优化后的Dockerfile构建的镜像UnionFS层数
[root@master ~]# docker history d82b
更多推荐
已为社区贡献1条内容
所有评论(0)