DockerFile与Docker常用安装

DockerFile是什么

DockerFile是用来构建镜像的构建文件,是由一系列命令和参数构成的脚本。
构建三步骤:

  • 编写DockerFile文件
  • docker build
  • docker run

docker体系结构(保留字指令):

  • FROM:基础镜像,当前新镜像基于哪个镜像
  • MAINTAINER:镜像维护者的姓名和邮箱地址
  • RUN:容器构建时需要运行的命令
  • EXPOSE:当前容器对外暴露出的端口
  • WORKDIR:指定在创建容器后,终端登录进来时的目录
  • ENV:用来在构建镜像过程中设置环境变量
  • ADD:将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
  • COPY:类似ADD,拷贝文件和目录到镜像中。将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置
  • VOLUME:容器数据卷,用于数据保存和持久化工作
  • CMD:指定一个容器启动时要运行的命令。DockerFile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换
  • ENTRYPOINT:指定一个容器启动时要运行的命令。ENTRYPOINT的目的和CMD一样,都是指定容器启动程序和参数
  • ONBUILD:当构建一个被继承的DockerFile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

Docker常用安装

总体步骤:

  • 搜索镜像
  • 拉取镜像
  • 查看镜像
  • 启动镜像
  • 停止容器
  • 移除容器

docker安装mysql

docker search mysql

docker pull mysql:5.7

docker run -p 12345:3306 --name mysql -v /fatal/mysql/conf:/etc/mysql/conf.d -v /fatal/mysql/logs:/logs -v /fatal/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 -d mysql:5.7

docker exec -it 容器id /bin/bash

docker exec 容器id sh -c 'exec mysqldump --all-databases -uroot -p"密码"' > /fatal/all-databases.sql               (备份docker中mysql的数据)

docker安装redis

docker pull redis:4.0

docker run -p 6379:6379 -v /fatal/myredis/data:/data -v /fatal/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf -d redis:4.0 redis-server /usr/local/etc/redis/redis.conf --appendonly yes   (appendonly是数据持久化存储)

docker exec -it 容器id redis-cli

本地镜像发布到阿里云

镜像的生成方法:1.前面的DockerFile 2.从容器创建一个新的镜像
docker commit [OPTIONS] 容器id

$ sudo docker login --username=fatalblows registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/fatal/mycentos:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/fatal/mycentos:[镜像版本号]

从阿里云拉镜像下来:docker pull xxxxxxxxxx

你可能感兴趣的:(docker,docker)