目录
1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。
1.1 启动mysql镜像
1.2 启动owncloud镜像
1.3 浏览器访问
1.4 总结
2、安装搭建私有仓库 Harbor
2.1 下载docker-compose并赋予执行权限
2.2 磁盘挂载,保存harbor
2.3 修改配置文件
2.4 安装harbor
2.5 浏览器访问
2.6 新建项目
2.7 修改docker配置,添加harbor仓库为信任地址
2.8 将要上传的镜像打标签
2.9 登录harbor仓库
2.10 上传镜像
2.11 浏览器查看
2.12 拉取镜像
3、编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库。具体要求如下:
3.1 编写Dockerfile
3.2 使用build 制作镜像
3.3 基于自己制作的镜像创建容器
3.4 测试
3.5 打标签推送镜像到私有仓库
3.6 总结
4、Dockerfile快速搭建自己专属的LAMP环境,生成镜像lamp:v1.1,并推送到私有仓库。具体要求如下:
4.1 编写Dockerfile
4.2 使用build 制作镜像
4.3 基于自己制作的镜像创建容器
4.4 测试
4.5 推送镜像
4.6 总结
--link
其中,name和id是源容器的name和id,alias是源容器在link下的别名。
当使用–link参数时,docker会自动在共享两个容器的变量。访问数据库的时候,不再是通过IP的方式来访问,而是通过容器名来访问.
docker run 的-p 参数
-p, --publish ip:[hostPort]:containerPort | [hostPort:]containerPort
Publish a container's port, or range of ports, to the host.
启动的时候
只用-it参数不用-d参数,终端有很多输出,并且会卡在终端
如果只用-d 参数有可能启动不了容器。用docker start xxx 也可能启动不了。这个时候docker run
的时候可以用-itd 参数。
下载地址:GitHub - docker/compose: Define and run multi-container applications with Docker
mv docker-compose-linux-x86_64 /usr/local/bin
cd /usr/local/bin/
chmod +x docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 docker-compose
查看是否安装好了
harbor实际就是启动了一些docker服务
使用admin登录,密码为Harbor12345(初始密码在harbor.yml文件有记录)
将拉下来的镜像不做任何修改打一个标签为xxx:yyy 推送的时候会失败。
(1)基于centos基础镜像;
(2)指定作者信息;
(3)安装nginx服务,将提供的dest目录(提供默认主页index.html)传到镜像内,并将dest目录内的前端文件复制到nginx的工作目录;
(4)暴露80端口;
(5)设置服务自启动。
(6)验证镜像。
打标签
登录:
推送:
查看:
(1)如果Dockerfile中需要的镜像本地没有,那么也可以在线拉取,且不会保存到本地,速度比较慢
(2)基于centos作为基础镜像,如果不指定标签,默认为centos8,官方不再维护,这个时候的yum源已经过期不能用了。所以如果在Dockerfile里面使用RUN yum 的话构建镜像的时候会失败。
(3)docker cp nginx-1.22.0-1.el7.ngx.x86_64.rpm centos701:/rpm ---从宿主机复制东西给容器(centos701是容器名称也可以使用容器id,/rpm是容器内路径,从宿主机复制过来的东西会保存到此目录)
docker cp centos701:/rpm/nginx-1.22.0-1.el7.ngx.x86_64.rpm /root ---从宿主机复制东西给容器
(1)基于centos:6基础镜像;
(2)指定作者信息;
(3)安装httpd、mysql、mysql-server、php、php-mysql、php-gd;
(4)暴露80和3306端口;
(5)设置服务自启动。
(6)验证镜像。
(1)centos6无法使用yum源的问题,需要添加一个源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
将Centos-6-Vault-Aliyun.repo保存成CentOS-Base.repo
(2)docker run --name lamp1 -itd -p 9999:80 lamp:v1.1 之后容器没有启动并且用docker start 命令也无法启动。试试用这个:docker run -d --name lamp1 -p 9999:80 lamp:v1.1 tail -f /dev/null。如果这样启动可能会有影响比如说Dockerfile 中的CMD指令不会执行
(3)Dockerfile 中 CMD指的是当容器启动的时候指定的命令