Docker快速入门实战

为什么使用容器?

1、上线流程繁琐

2、资源利用率低

3、扩容/缩容不及时

4、服务器环境臃肿

5、环境不一致性

容器VS虚拟机

VM VS Container

Docker快速入门实战_第1张图片

 Docker快速入门实战_第2张图片

 Docker 是什么

1、使用最广泛的开源容器引擎

2、一种操作系统级的虚拟化技术

3 、依赖于Linux内核特性:Namespace(资源隔离)和Cgroups(资源限制)

4 、一个简单的应用程序打包工具

Docker设计目标

1、提供简单的应用程序打包工具

2 、开发人员和运维人员职责逻辑分离

3 、多环境保持一致性

Docker应用场景

应用程序打包和发布

应用程序隔离

持续集成

部署微服务

快速搭建测试环境

通过PaaS产品(平台即服务)

Docker基本组成

客户端  容器  镜像

Docker快速入门实战_第3张图片

安装Docker 

官网地址:www.docs.docker.com

Docker版本: 社区版 Community Edition  ,CE 社区版 Enterprise Edition ,EE

支持平台:

Linux(centOs,Debian,Fedora,Oracle)

Mac

Windows

安装前建议关闭S额Linux和firewalld

Linux中关闭SELinux的方法

1、临时关闭:输入命令setenforce 0,重启系统后还会开启。

2、永久关闭:输入命令vi /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出。

查看防火墙状态

firewall-cmd --state

停止firewall

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service

安装依赖包

yum install -y yum-utils

添加Docker软件包源

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

安装Docker CE

yum install -y docker-ce

启动Docker服务并设置开机启动

systemctl start docker

systemctl enable docker

https://docs.docker.com/engine/install/centos

官方文档:https://docs.docker.com

阿里云源:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker-ce遇到报错——Error: Package:docker-ce-rootless-extras-20.10.3-3.el7.x86_64 (docker-ce-stable)

Docker快速入门实战_第4张图片

 

遇到了contain-SElinux的情况
所以我们只需要把他补上并重新安装一次就好了就行了!
如果是Linux是最小化安装环境下的时候是没有wget下载工具的,可以yum -y install wget安装一个

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install docker-ce
Docker快速入门实战_第5张图片

 Docker 镜像管理

镜像是什么?

一个分层存储文件,不是一个单一的文件

一个软件的环境 

一个镜像可以创建N个容器 

一种标准化的交付

一个不包含Linux内核而又精简的Linux操作系统

配置加速器

Docker Hub是由Docker公司负责维护

地址:https://hub.docker.com

配置镜像加速器

vi /etc/docker/daemon.json

{

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

}

重启Docker:systemctl restart docker

通过docker info命令可以看到加速器了 以后通过pull  push就可以加速

Docker快速入门实战_第6张图片

常用管理命令

 Docker快速入门实战_第7张图片

 启动一个容器:docker run -d nginx 或 docker container run -d nginx 一样

列出本地有哪些镜像:docker image ls

如果本地没有镜像就从远程下载  docker run -d redis

查看镜像的历史步骤 : docker history nginx

查看镜像的详细信息:docker inspect nginx

从镜像仓库拉去镜像:docker pull nginx

设置端口:docker run -d -p 8080:80 nginx

Docker容器管理

创建容器常用选项

docker  run --help

docker run -d nginx

Docker快速入门实战_第8张图片

docker exec -it   id bash

docker run -d centos 退出

docker run -d nginx 启动

docker run -it -d nginx 启动

docker run -it -d centos 启动

docker ps -l

docker run -d -e env=prod -p 88:80 --name webname  -h webname --restart=always nginx

docker run -m="500m" --cpus="1" -d nginx 限制

Docker快速入门实战_第9张图片

常用管理命令

docker ps 列出当前有哪些容器

Docker快速入门实战_第10张图片

 docker exec webname ls

docker exec -it id/名称 bash 进入容器

部署完成路径:

docker run -it -d cenos

docker exec -it 名称 bash

ls

yum install nginx

docker commit 名称 test

docker ps -a 查看所有容器,包含退出 -q列出所有容器id

docker rm -f $(docker ps -q)

docker rm -f $(docker ps -qa)

容器数据持久化

Docker快速入门实战_第11张图片

 

Docker快速入门实战_第12张图片

 

例如:jenkins,gitlab 使用docker都是采用-v将他们自身产生的数据持久化宿主机

容器网络

Docker快速入门实战_第13张图片

 

DockFile构建镜像

Docker快速入门实战_第14张图片

 

常用指令:

Docker快速入门实战_第15张图片

mkdir dockerfile

vi dockerfile

FROM centos:7

RUN yum install epel-release -y && \

         yum install nginx -y

 CMD ["nginx","-g","daemon off;"]

docker build -t nginx:v1 .

ls /opt/wwwroot/

docker run -d --name web2 -p 89:80 -v /opt/wwwroot/:/usr/share/nginx/html nginx

docker run -d --name web2 -p 90:80 -v /opt/wwwroot/:/usr/share/nginx/html nginx:v1

你可能感兴趣的