天天看点

服务计算——容器化技术与容器服务Docker

文章目录

  • Docker
    • 准备docker环境
      • 使用阿里云安装docker
    • 运行容器
    • Docker基本操作
    • MYSQL与容器化
      • 构建镜像练习
      • 使用MYSQL容器
      • 容器监控与日志
    • 过程中的错误及解决方案

本文简要记录了在CentOS7中安装docker的步骤和MYSQL的容器化

Docker

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

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

准备docker环境

使用阿里云安装docker

  1. 建立仓库
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
           
服务计算——容器化技术与容器服务Docker

2. 获取阿里云docker

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
           
服务计算——容器化技术与容器服务Docker

3. 查看指定版本

yum list docker-ce --showduplicates
           

可以看到有多种版本的docker选择安装

服务计算——容器化技术与容器服务Docker

4. 安装指定版本

yum install -y --setopt=obsoletes=0 \
   docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
   docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch
           

我们选择安装17.03.2版本:

服务计算——容器化技术与容器服务Docker

5. 也可以通过

sudo yum install docker-ce

默认安装最新版,不指定版本号

6. 启动docker

Start docker service
systemctl enable docker
systemctl start docker
           

docker version

检查docker安装:

服务计算——容器化技术与容器服务Docker

运行容器

  1. 启动容器:
    服务计算——容器化技术与容器服务Docker
  2. 运行ubuntu镜像:
    服务计算——容器化技术与容器服务Docker

Docker基本操作

  1. docker images

    显示本地镜像库:
    服务计算——容器化技术与容器服务Docker
  2. docker ps

    显示运行中的容器:

    docker ps -a

    显示所有容器
    服务计算——容器化技术与容器服务Docker
  3. 继续运行并进入原容器:
    服务计算——容器化技术与容器服务Docker
  4. docker --help

    获得更多帮助

MYSQL与容器化

构建镜像练习

  1. 尝试着构建一个docker镜像,创建一个新目录并进入,在目录下编辑dockerfile文件,录入如下内容:
服务计算——容器化技术与容器服务Docker
  1. docker build . -t hello

    命令构建镜像
    服务计算——容器化技术与容器服务Docker
  2. docker run -it --rm hello -H

    启动镜像:
    服务计算——容器化技术与容器服务Docker

使用MYSQL容器

  1. 启动服务器:
    服务计算——容器化技术与容器服务Docker
  2. 启动MYSQL客户端:
docker run -it --net host mysql:5.7 "sh"
mysql -h127.0.0.1 -p3306 -uroot -proot
           

进入mysql客户端,顺利执行mysql基本操作:

服务计算——容器化技术与容器服务Docker

3. 创建卷并挂载:

docker rm $(docker ps -a -q) -f -v
docker volume create mydb
docker run --name mysql2 -e MYSQL_ROOT_PASSWORD=root -v mydb:/var/lib/mysql -d mysql:5.7
           

并通过客户端容器链接服务器:

服务计算——容器化技术与容器服务Docker

容器监控与日志

  1. docker logs [OPTIONS] CONTAINER

    查看容器的日志:

如:查看进近30分钟内hello-world镜像的日志

服务计算——容器化技术与容器服务Docker

2. 检查docker的状态:

docker info [OPTIONS]

服务计算——容器化技术与容器服务Docker
服务计算——容器化技术与容器服务Docker

3.

docker inspect

查看容器详细信息:

如:查看mysql容器的信息

服务计算——容器化技术与容器服务Docker

过程中的错误及解决方案

  1. 运行某指令时,显示pid被锁定
    服务计算——容器化技术与容器服务Docker
  • 解决方法:

    杀死占用的进程,或者直接

    rm -f /var/run/yum.pid

    删除进程文件
    服务计算——容器化技术与容器服务Docker
  1. docker启动时:

    Got permission denied while trying to connect to the Docker daemon

  • 问题:没有把登陆用户加入进docker用户组
  • 解决方法:
sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组
           

3. docker-compose与yum对python版本的支持不兼容问题

由于安装docker-compose需要python2.7的支持,而

yum

是不支持python2.7的,所以需要为yum指定python2.6

yum时出现的错误:

# yum
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
 No module named yum
... ... ... ...
           
  • 解决方法:

    编辑yum配置文件:

# vim /usr/bin/yum
#!/usr/bin/python
# 第一行修改为 python2.6.6
#!/usr/bin/python2.6.6
           

继续阅读