虚拟化技术 -- docker

1.容器是什么?

1.1 docker诞生:

    docker是dotcloud公司开源的一款产品,dotcloud是2010年新成立的一家公司,主要基于PAAS(Plafrom as a Service,平台即服务)平台为开发者提供服务。
在这里插入图片描述

2.2013年10月dotcloud公司改名为docker股份有限公司。

1.2 docker历程:

    1.2.1 Linux container是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。
    1.2.2 docker是PAAS提供商dotcloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源。
    1.2.3 docker设想是交付运行环境如同海运,OS如同一个货运,每一个在OS基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。
在这里插入图片描述

1.3 docker构成

1.3.1 docker仓库:https://hub.docker.com
1.3.2 docker自身组件

docker Client: docker的客户端。
docker Server:docker daemon的主要组成部件,接收用户通过docker client发出的请求,并按照相应的路由规则实现路由转发。
docker镜像:docker镜像运行之后变成容器(docker run)

    ▶ 仓库、镜像(封装好的运行环境)、容器为docker三大件,缺一不可。
1.3.3 docker组件间的协同方式
在这里插入图片描述
1.3.4 docker化应用存在的方式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4 docker安装

1.4.1 script install

yum update
$ curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
docker run hello-world

1.4.2 yum install

yum update
cat >/etc/yum.repos.d/docker.repo << -EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7
enable=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg EOF
yum install docker

1.4.3 rpm install

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

    ▶打开下载链接,下载相应的rpm包
    ▶优化linux系统,系统版本最好的centos7及以上。
    ▶优化linux系统

[root 11:40 @ docker ~] systemctl stop firewalld
[root 11:40 @ docker ~] systemctl disable firewalld
[root 11:40 @ docker ~] getenforce
[root 11:40 @ docker ~] systemctl start iptables(yum -y install iptables-services)
[root 11:40 @ docker ~] systemctl enable iptables
[root 11:40 @ docker ~] iptables -F 
[root 11:40 @ docker ~] service iptables save
[root 11:40 @ docker ~] yum update #更新软件包
[root 11:40 @ docker ~] reboot 
[root 11:40 @ docker ~] rz docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm
[root 11:40 @ docker ~] rz docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm
[root 11:40 @ docker ~] mkdir /application
[root 11:40 @ docker ~] mv docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm /application/
[root 11:59 @ docker ~] mv docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm /application/
[root 11:59 @ docker ~] cd /application
[root 11:59 @ docker ~] yum install -y *
[root 12:05 @ docker ~] systemctl start docker
[root 12:05 @ docker ~] systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root 12:06 @ docker ~] docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:f9dfddf63636d84ef479d645ab5885156ae030f611a56f3a7ac7f2fdd86d7e4e
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
[root 12:06 @ docker ~] docker version

1.5 docker加速配置

[root 12:06 @ docker ~] cp /lib/systemd/system/docker.service /etc/systemd/system/docker.service
[root 12:06 @ docker ~] chmod 777 /etc/systemd/system/docker.service
[root 12:06 @ docker ~] vim  /etc/systemd/system/docker.service
ExecStart=/usr/bin/dockerd-current  --registry-mirror=https://kfp63jaj.mirror.aliyuncs.com \
[root 12:06 @ docker ~] systemctl daemon-reload
[root 12:06 @ docker ~] systemctl restart docker
[root 12:06 @ docker ~] ps -ef  |grep docker
root       1841      1  0 12:21 ?        00:00:00 /usr/bin/dockerd --registry-mirror=https://kfp63jaj.mirror.aliyuncs.com
阿里云docker官网:https://dev.aliyun.com/search.html

1.6 docker化应用体验

♦ wordpress运行环境需要如下软件的支持:
    ▶PHP 5.6或更新软件
    ▶MySQL 5.6 或更新版本
    ▶Apache 和 mod_rewrite模块
♦ docker run --name db --env MYSQL_ROOT_PASSWORD=example -d mariadb
♦ docker run --name MyWordPress --link db:mysql -p 8080:80 -d wordpress

[root 12:06 @ docker ~] docker pull wordpress
[root 12:06 @ docker ~] docker pull mariadb
[root 13:57 @ docker ~] docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mariadb             latest              1fd0e719c495        13 days ago         356 MB
wordpress           latest              126aa00ecc0c        2 weeks ago         539 MB
hello-world         latest              fce289e99eb9        14 months ago       1.84 kB
[root 14:00 @ docker ~] docker run --name MyWordPress -link db:mysql -p 8080:80 -d wordpress
[root 12:06 @ docker ~] docker run --name MyWordPress --link db:mysql -p 8080:80 -d wordpress
[root 14:02 @ docker ~] docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                  NAMES
845918a7ac50        wordpress           "docker-entrypoint..."   About a minute ago   Up About a minute   0.0.0.0:8080->80/tcp   MyWordPress
5ffff67360ab        mariadb             "docker-entrypoint..."   2 minutes ago        Up 2 minutes        3306/tcp
[root 12:06 @ docker ~]

在这里插入图片描述

发布了11 篇原创文章 · 获赞 0 · 访问量 164

猜你喜欢

转载自blog.csdn.net/qq_42775163/article/details/104925022