本文简要记录了在CentOS7中安装docker的步骤和MYSQL的容器化
Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
准备docker环境
使用阿里云安装docker
- 建立仓库
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2. 获取阿里云docker
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 查看指定版本
yum list docker-ce --showduplicates
可以看到有多种版本的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版本:
5. 也可以通过sudo yum install docker-ce
默认安装最新版,不指定版本号
6. 启动docker
Start docker service
systemctl enable docker
systemctl start docker
docker version
检查docker安装:
运行容器
- 启动容器:
- 运行ubuntu镜像:
Docker基本操作
docker images
显示本地镜像库:
docker ps
显示运行中的容器:
docker ps -a
显示所有容器
- 继续运行并进入原容器:
docker --help
获得更多帮助
MYSQL与容器化
构建镜像练习
- 尝试着构建一个docker镜像,创建一个新目录并进入,在目录下编辑dockerfile文件,录入如下内容:
docker build . -t hello
命令构建镜像
docker run -it --rm hello -H
启动镜像:
使用MYSQL容器
- 启动服务器:
- 启动MYSQL客户端:
docker run -it --net host mysql:5.7 "sh"
mysql -h127.0.0.1 -p3306 -uroot -proot
进入mysql客户端,顺利执行mysql基本操作:
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 logs [OPTIONS] CONTAINER
查看容器的日志:
如:查看进近30分钟内hello-world镜像的日志
2. 检查docker的状态:docker info [OPTIONS]
3. docker inspect
查看容器详细信息:
如:查看mysql容器的信息
过程中的错误及解决方案
- 运行某指令时,显示pid被锁定
- 解决方法:
杀死占用的进程,或者直接rm -f /var/run/yum.pid
删除进程文件
- 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