1. 基本概念、用途、核心思想
为什么需要Docker?
环境配置的难题;
虚拟机;
Docker的基础———Linux容器;
Docker是什么?
Docker是一个用来装程序及其环境的容器,属于Linux容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的Linux容器解决方案。

Docker的用途
提供统一的环境;
提供快速拓展、弹性伸缩的云服务;
防止其他用户的进程把服务器资源占用过多;
Docker的特点
标准化:
- 运输方式(把程序和环境从一个机器运到另一个机器的)
- 存储方式(程序和环境的存储)
- API接口(不需要Tomcat等应用的命令了,都标准化了)
灵活:即使是最复杂的应用也可以集装箱化
轻量级:容器利用并共享主机内核
便携式:可以在本地构建,部署到云,并在任何地方运行
Docker带来的好处
开发团队得到的好处


2. Docker的组成、架构、重要概念


image镜像:
存储:联合文件系统,UnionFS


容器
如果镜像类似于Java中的类,那么容器就是类似于实例。
容器的这一层是可以修改的,而镜像是不可以修改的。
同一个镜像可以生成多个容器独立运行,而他们之间没有任何的干扰。
仓库
hub.docker.com
备选
https://c.163yun.com/hub#/m/home/
client和deamon
client提供给用户一个终端,用户输入 Docker 提供的命令来
管理本地或远程的服务器。
deamon:服务端守护进程,接收 Client 发送的命令并执行
相应的操作。
3. Docker的安装
在Cent OS安装docker
-
先有一个Cent OS 7.6系统
这个很重要,不同版本按照的时候是不一样的。
查看CentOS版本 cat /etc/redhat-release -
用root账户登录进去
-
配置国内yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all
yum makecache

-
卸载旧版本
较旧的Docker版本称为docker或docker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
如果yum报告未安装这些软件包,也没问题。
-
更新yum
yum check-update

yum update

-
安装所需的软件包
yum install -y yum-utils
device-mapper-persistent-data
lvm2

-
使用以下命令来设置稳定的存储库。
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

-
查看docker版本
yum list docker-ce --showduplicates | sort -r

-
安装指定的版本
yum install docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io

-
Docker 是服务器----客户端架构。命令行运行docker命令的时候,需要本机有 Docker 服务。用下面的命令启动
systemctl start docker

-
安装完成后,运行下面的命令,验证是否安装成功。
docker version

或者
docker info

4. 第一个Docker容器




5. 运行Nginx镜像,并访问到Docker容器内部





Docker的网络模式
Bridge
Host
None
端口映射
实操 :访问Docker内的Nginx



通过宿主机网络中转brige网络模式成功访问到容器内部的nginx的web服务器。

执行命令后停止这个容器,再次访问时,确实失效无法访问:



6. 制作自己的Docker容器,dockerfile实战
FROM alpine:latest
MAINTAINER liulei
CMD echo 'hello my dockerfile,liulei'



[root@VM-4-12-centos mydockerfile]# ls
[root@VM-4-12-centos mydockerfile]# touch Dockerfile
[root@VM-4-12-centos mydockerfile]# ls
Dockerfile
[root@VM-4-12-centos mydockerfile]# vim Dockerfile
[root@VM-4-12-centos mydockerfile]# cat Dockerfile
FROM alpine:latest
MAINTAINER liulei
CMD echo 'hello my dockerfile,liulei'
[root@VM-4-12-centos mydockerfile]# docker build -t my_docker .
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM alpine:latest
latest: Pulling from library/alpine
2408cc74d12b: Pull complete
Digest: sha256:686d8c9dfa6f3ccfc8230bc3178d23f84eeaf7e457f36f271ab1acc53015037c
Status: Downloaded newer image for alpine:latest
---> e66264b98777
Step 2/3 : MAINTAINER liulei
---> Running in 35b1e39236f0
Removing intermediate container 35b1e39236f0
---> b06470872de4
Step 3/3 : CMD echo 'hello my dockerfile,liulei'
---> Running in 9f6640aaebf6
Removing intermediate container 9f6640aaebf6
---> a4c859fb9486
Successfully built a4c859fb9486
Successfully tagged my_docker:latest
[root@VM-4-12-centos mydockerfile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my_docker latest a4c859fb9486 2 minutes ago 5.53MB
alpine latest e66264b98777 7 days ago 5.53MB
[root@VM-4-12-centos mydockerfile]# docker run my_docker
hello my dockerfile,liulei
[root@VM-4-12-centos mydockerfile]#
恭喜你已经有了自己的Docker镜像。
本文详细介绍了Docker的基本概念、用途、核心思想,包括它解决环境配置难题、提供标准化的云服务及轻量级容器的优势。同时,阐述了Docker的组成部分如镜像、容器和仓库,以及Docker的安装步骤,特别是在CentOS上的实践。此外,通过创建和运行Nginx镜像,展示了Docker的网络模式和容器制作过程,最后通过Dockerfile制作了自己的Docker镜像。
2278

被折叠的 条评论
为什么被折叠?



