一、练习内容
1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。
2、安装搭建私有仓库 Harbor
3、编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库。具体要求如下:
(1)基于centos基础镜像;
(2)指定作者信息;
(3)安装nginx服务,将提供的dest目录(提供默认主页index.html)传到镜像内,并将dest目录内的前端文件复制到nginx的工作目录;
(4)暴露80端口; (5)设置服务自启动。 (6)验证镜像。
4、Dockerfile快速搭建自己专属的LAMP环境,生成镜像lamp:v1.1,并推送到私有仓库。具体要求如下:
(1)基于centos:6基础镜像; (2)指定作者信息;
(3)安装httpd、mysql、mysql-server、php、php-mysql、php-gd;
(4)暴露80和3306端口; (5)设置服务自启动。 (6)验证镜像。
二、具体配置过程
(1)下载mysql5.6镜像
[root@zyw ~]# docker pull mysql:5.6
5.6: Pulling from library/mysql
35b2232c987e: Pull complete
fc55c00e48f2: Pull complete
0030405130e3: Pull complete
e1fef7f6a8d1: Pull complete
1c76272398bb: Pull complete
f57e698171b6: Pull complete
f5b825b269c0: Pull complete
dcb0af686073: Pull complete
27bbfeb886d1: Pull complete
6f70cc868145: Pull complete
1f6637f4600d: Pull complete
Status: Downloaded newer image for mysql:5.6
docker.io/library/mysql:5.6
(2)运行mysql容器:创建并运行一个mysql容器
[root@zyw ~]# docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=admin123! -d mysql:5.6
4576c81564068ac483e683674a1ce0151f394f1a26605ac142bea02e7b3fbb6d
(3)下载ownCloud镜像,运行ownCloud容器
[root@zyw ~]# docker pull owncloud
[root@zyw ~]# docker run --name owncloud-container -p 8080:80 --link mysql-container:mysql -d owncloud
94ea51b2c3bf8259bbaacb1243f519ec0a49e6ff5e64e5d7f86e3727ee87c4f7
(4)通过主机访问个人网盘(http://192.168.65.137:8080)
(5)安装compose容器编排工具
[root@zyw ~]#yum -y install epel-release #安装pip需要先安装epel-release包
[root@zyw ~]#yum install -y python-pip #安装pip
[root@zyw ~]#pip install --upgrade pip #升级pip
[root@zyw ~]#pip install docker-compose #安装docker-compose
[root@zyw harbor]# docker-compose -v
创建个人网盘成功
现在是编写Dockerfile制作nginx镜像并推送到私有仓库的步骤:
(1)创建一个名为Dockerfile的文件并添加内容
[root@zyw ~]# mkdir -p Dockerfile
[root@zyw ~]# vim Dockerfile
FROM centos
MAINTAINER Your Name <28645091892@qq.com>
# 安装nginx
RUN yum install -y epel-release && yum install -y nginx
# 将提供的dest目录传到镜像内,并将dest目录内的前端文件复制到nginx的工作目录
COPY dest/ /usr/share/nginx/html/
# 暴露80端口
EXPOSE 80 3306
# 设置服务自启动
CMD ["nginx", "-g", "daemon off;"]
(2)将提供的dest目录下的文件(包括index.html)与Dockerfile放在同一目录下。
[root@zyw ~]# cp -R path/to/dest/* .
(3)构建镜像
[root@zyw ~]# docker build -t nginx:v1.1 .
[+] Building 0.0s (2/2) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 92B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
(4)将镜像推送到私有仓库:首先登录到私有仓库,然后将镜像标记为私有仓库的地址,并推送到私有仓库。
[root@zyw ~]# docker login 192.168.65.137
Username: zyw
Password:
[root@zyw ~]# docker tag nginx:v1.1 192.168.65.137/nginx:v1.1
[root@zyw ~]# docker push 192.168.65.137/nginx:v1.1
(5)验证镜像,在其他机器上,使用docker pull命令从私有仓库中拉取镜像
[root@zyw ~]# docker pull 192.168.65.137/nginx:v1.1