应用容器Docker

一、Docker简介

1.1概念

Docker是一个应用容器引擎,基于Go语言实现。主要用于打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到Linux机器上。

1.2应用场景

(a) Web 应用的自动化打包和发布。

(b) 自动化测试和持续集成、发布。

(c) 在服务型环境中部署和调整数据库或其他的后台应用。

(d) 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

1.3特点

(a) 容器是完全使用沙箱机制,相互隔离

(b) 容器性能开销低

1.4docker架构

(a) 镜像image

本质是一个分层的文件系统,最底端是bootfs,第二层是root文件系统rootfs,然后再往上可以叠加其他的镜像,如图所示:

(b) 容器container

容器是镜像运行时的实体,容器通过 Docker 镜像来创建,关系类似于面向对象编程中的对象与类。镜像是类,是具备某些共同特征的实体的集合。容器是对象,是一个具体的概念,是独立运行的一个或一组应用。

(c) 仓库repository

是一个代码控制中心,用来保存镜像。

二、安装与卸载

首先,由于Docker 依赖于已存在并运行的 Linux 内核环境,所以Docker 必须部署在 Linux 内核的系统上。

2.1 docker安装步骤

(a) yum包更新到最新 yum update

(b) 安装需要的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2

(c) 设置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

(d) 安装docker yum install -y docker-ce

(e) 查看docker版本,验证是否安装成功 docker -v

2.2 配置docker镜像加速器

可以通过修改daemon配置文件 /etc/docker/daemon.json来使用加速器。

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

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

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

2.3 docker卸载

删除安装包:yum remove docker-ce

删除镜像、容器、配置文件等内容:rm -rf /var/lib/docker

三、docker命令

3.1服务相关命令

启动docker服务:systemctl start docker

查看docker服务状态:systemctl status docker

停止docker服务:systemctl stop docker

重启docker服务:systemctl restart docker

开启启动docker服务:systemctl enable docker

3.2镜像相关命令

查看镜像:docker images

搜索镜像:docker search 应用名称(redis、mysql...)

下载镜像:docker pull 应用名称:版本号

删除镜像:docker rmi 镜像ID/应用名称:版本号

3.3 容器相关命令

参数:-i 保持容器运行

            t 自动进入容器,退出容器后,自动关闭容器

            d 后台运行容器,需要docker exec进入容器,退出容器后,不会关

            --name 为创建容器起名

           /bin/bash 进入容器命令行

创建容器:docker run -id  --name 名称 镜像名称:版本号

进入容器:docker exec  -it 容器名 /bin/bash

退出容器:exit

查看容器:docker ps -a

停止容器:docker stop 容器名

启动容器:docker start 容器名

删除容器:docker rm 容器名

查看容器信息:docker inspect 容器名

四、容器数据卷

4.1概念

数据卷就是宿主机中的一个目录或者文件,当数据卷与容器目录绑定后,双方的修改会立即同步。一个数据卷可以被多个容器挂载,一个容器可以挂在多个数据卷。如图所示:

                          

4.2作用

容器数据持久化

外部机器与容器间接通信

容器之间的数据交换

4.3配置数据卷

docker run -id -v 宿主机目录(文件):容器目录(文件) --name 名称 镜像名称:版本号

五、docker应用部署示例

5.1 部署mysql

(1)搜索mysql镜像:docker search mysql

(2)拉取镜像:docker pull mysql:5.7

(3)创建容器,设置端口映射、目录映射

mkdir ~/mysql 

cd ~/mysql

docker run -id \

-p 3307:3306  \

--name zhanglang_mysql \

-v $PWD/conf:/etc.mysql/conf.d \

-e MYSQL_ROOT_PASSWORD=123456 \

mysql :5.6

六、dockerfile(超核心)下期详细讲解

七、私有仓库

7.1搭建

(a)拉取私有仓库镜像:docker pull registry

(b)启动私有仓库容器:docker run -id --name=zhanglang_registry -p 5000:5000 registry

(c)打开浏览器输入:http://私有仓库服务器IP地址:5000/v2/_catalog

(d)修改deamon.json:vim /etc/docker/daemon.json

         {"insecure-registries":["私有仓库服务器IP地址:5000"]}

(e)重启docker服务:systemctl restart docker

                                       docker start registry

7.2上传镜像

(a)标记镜像为私有仓库的镜像:docker tag 应用名称:版本号 私有仓库服务器IP地址:5000/应用名称:版本号

(b)上传标记的镜像:docker push 私有仓库服务器IP地址:5000/应用名称:版本号

7.3 拉取镜像

(a)拉取镜像:docker pull 私有仓库服务器IP地址:5000/应用名称:版本号

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@至尊宝~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值