Docker容器技术实践

什么是Docker

Docker 是一个开源的应用容器引擎,基于Go语言并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

 

准备Docker环境

本次安装环境为Ubuntu16.04

首先安装apt依赖包,使其通过HTTP获取仓库

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

接下来添加Docker官方GPG密钥

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

搜索指纹的后8个字符,验证是否拥有带指纹的密钥

sudo apt-key fingerprint 0EBFCD88

Docker容器技术实践_第1张图片

设置稳定版仓库以及更新apt包索引

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"

$ sudo apt-get update

最后安装最新版本的Docker

sudo apt-get install docker-ce docker-ce-cli containerd.io

安装完成后检查Docker版本号

Docker容器技术实践_第2张图片

 

运行第一个容器

通过运行Docker自带的HelloWorld镜像可以检测是否安装成功

Docker容器技术实践_第3张图片

 

Docker基本操作

运行镜像

sudo docker run -it ubuntu bash

直接运行会出现权限不够的错误如下

加上sudo 提供权限后可成功运行

Docker容器技术实践_第4张图片

显示本地镜像库内容

Docker容器技术实践_第5张图片

获得帮助

Docker容器技术实践_第6张图片

显示运行中的容器

显示所有容器(包含已终止)

Docker容器技术实践_第7张图片

继续原容器并进入

Docker容器技术实践_第8张图片

MySQL与容器化

拉取MySQL镜像

Docker容器技术实践_第9张图片

查看Docker Image,可以看到mysql已经成功添加

Docker容器技术实践_第10张图片

构建docker镜像练习

构建dockfile

Docker容器技术实践_第11张图片

构建镜像

Docker容器技术实践_第12张图片

运行镜像

Docker容器技术实践_第13张图片

 

使用MySQL容器

启动服务器

启动服务器的过程中出现了端口已被占用的错误

Docker容器技术实践_第14张图片

查看信息发现3306端口被系统现存的MySQL占用了,需要停止当前的MYSQL服务

停止后重启服务器可以看到服务器成功启动

Docker容器技术实践_第15张图片

启动MySQL客户端

Docker容器技术实践_第16张图片

 

查看数据库文件,在/var/lib/mysql目录下可以看到数据库文件

Docker容器技术实践_第17张图片

Dockerfile 的 VOLUME /var/lib/mysql 的含义:

每次启动 mysql 容器,docker 创建一个文件卷挂载在容器内/var/lib/mysql位置,这个卷在主机(host)的 /var/lib/docker/volumes/ 目录下

 

创建卷并挂载

启动客户端链接服务器

Docker容器技术实践_第18张图片

Docker容器技术实践_第19张图片

挂载现有数据库

Docker容器技术实践_第20张图片

修改容器配置

查看容器信息可以看到容器名称成功修改

Docker容器技术实践_第21张图片

Docker compose 与多容器应用自动化部署

下载docker-compose最新版本

Docker容器技术实践_第22张图片

更改二进制权限使其成功运行

编写stack.yml并启动服务

Docker容器技术实践_第23张图片

Docker网络

查看容器网络文件

Docker容器技术实践_第24张图片

备制支持 ifconfig 和 ping 命令的 ubuntu 容器

docker run --name unet -it --rm ubuntu bash

# apt-get update
# apt-get install net-tools
# apt-get install iputils-ping -y

查看备置结果

Docker容器技术实践_第25张图片

ping测试

Docker容器技术实践_第26张图片

使用容器制作镜像

Docker的默认网络是通过桥(docker0)相连的,IP-Forward通过NAT访问外部网络,端口映射可以使外部网络访问容器,Docker网络结构图如下

Docker容器技术实践_第27张图片

创建自定义网络

创建u1,u2容器网络

Docker容器技术实践_第28张图片

 

Docker 仓库(Registry)

 

容器监控与与日志

阿里云镜像实践--登陆

Docker容器技术实践_第29张图片

Docker容器技术实践_第30张图片

检查docker状态

Docker容器技术实践_第31张图片

查看容器内进程

Docker容器技术实践_第32张图片

容器详细信息

Docker容器技术实践_第33张图片

容器日志查看

Docker容器技术实践_第34张图片

 

docker图形化管理工具

web图形化管理界面Portiner的单节点运行

Docker容器技术实践_第35张图片

 

你可能感兴趣的:(Docker容器技术实践)