一.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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐