目录介绍和安装安装启动镜像加速Docker基本操作镜像操作容器操作数据卷操作Dockerfile镜像结构DockerfileDocker-Compose安装基本命令Docker 私 服搭建练习练习1:save和load练习2:docker部署nginx练习3:部署MySQL练习4:基于Ubuntu构建一个新镜像,运行一个java项目练习5:部署微服务集群问题:微服务注册失败
介绍和安装
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
几个概念:
镜像(image):Docker将应用程序及其所需要的依赖、函数库等打包在一起,即为镜像。容器:镜像中的应用程序运行后形成的进程。Docker Registry:镜像托管平台,如DockerHub,网易云镜像服务,阿里云镜像服务。
docker架构:
安装
可以先选择卸载:
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-selinux
docker-engine-selinux
docker-engine
docker-ce
安装存储驱动等:
yum install -y yum-utils
device-mapper-persistent-data
lvm2 –skip-broken
设置docker仓库:
# 设置docker镜像源
yum-config-manager
–add-repo
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i s/download.docker.com/mirrors.aliyun.com/docker-ce/g /etc/yum.repos.d/docker-ce.repo
yum makecache fast
安装社区版docker:
yum install -y docker-ce
启动
# 关闭防火墙
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
# 启动docker服务
systemctl start docker
# 停止docker服务
systemctl stop docker
# 重启docker服务
systemctl restart docker
# 查看docker版本
docker -v
镜像加速
参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
Docker基本操作
镜像操作
一些简单的操作:
# 查看镜像
docker images
# 删除镜像
docker rmi
# 拉取镜像
docker pull
# 推送镜像到Docker Registry
docker push
# 保存镜像为tar包
docker save
# 加载tar包为镜像
docker load
…………
命令有很多,不必记忆,勤用
–help
例如:
docker images –help
容器操作
一些简单的容器操作:
# 创建容器
docker run
# 进入容器
docker exec
# 查看容器日志(添加-f可以持续查看)
docker logs
# 查看容器
docker ps
# 删除容器
docker rm
…………
数据卷操作
数据卷是一个虚拟目录,指向宿主机文件系统中的某个目录。
docker volume [COMMAND]
create 创建数据卷inspect 显示一个或多个数据卷的信息ls 列出所有数据卷prune 删除未使用数据卷rm 删除一个或多个数据卷
后文练习123帮助理解。
Dockerfile
很多时候需要自己构建镜像,构建镜像需要写Dockerfile。
镜像结构
首先介绍镜像结构,镜像是应用程序及其所需要的系统函数库、环境、配置、依赖一层一层构建出来的,以mysql为例:
底层是系统函数库(例如Ubuntu),这一层也叫做基础镜像(BaseImage),相当于地基。
然后在地基上添加安装包,配置环境变量、配置、依赖等等。
最后需要提供一个入口(Entrypoint),也就是程序启动的脚本和参数。
Dockerfile
Dockerfile是一个文本文件,名为Dockerfile,没有后缀,其中包含一些指令,每一个指令就是一层。
常用指令:
写好Dockerfile后使用
docker build
命令构建镜像
详见练习4
Docker-Compose
若是部署微服务集群,一个个docker去构建会很繁琐,所以需要DOcker-Compose。
DockerCompose基于Compose文件快速部署分布式应用,无需手动一个个的创建和运行。
Compose文件也是一个文本文件,通过指令定义集群中的每个容器如何运行。
安装
# 下载docker-compose
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m`
暂无评论内容