- 环境与安装
- 基础镜像命令
- 基础容器命令
- 数据卷
- DockerFile
- Docker Compose
Centos 7 64位
# 卸载旧版本 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine # 安装所需的软件包。yum-utils提供了yum-config-manager ,并且device mapper存储驱动程序需要device-mapper-persistent-data和lvm2。 yum install -y yum-utils device-mapper-persistent-data lvm2 # 设置阿里云仓库源(官方的:https://download.docker.com/linux/centos/docker-ce.repo) yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装Docker-CE(社区版) yum install -y docker-ce
阿里云镜像加速器
DockerHub地址
# 启动Docker systemctl start docker # 重启Docker systemctl restart docker # 查看Docker状态 systemctl status docker # 查看Docker版本 docker -v # 从服务拉取镜像(以下以nginx为例) docker pull nginx # 查看镜像 docker images # 将镜像导出磁盘成压缩文件 docker save -o nginx.tar nginx:latest # 删除镜像 docker rmi nginx:latest # 加载压缩文件为镜像 docker load -i nginx.tar # 根据给定的Dockerfile和上下文以构建Docker镜像,--tag, -t,镜像的名字及tag,后面的空格+点是指构建执行所在的本地路径PATH,也可以是远程URL docker build -t javaWeb:1.0 .基础容器命令
# 创建运行Nginx容器,containerName给容器命名(eg:nTest),-p是宿主机和容器端口映射,:左边是宿主机端口,右边是容器端口,-d是后台运行,nginx镜像名称 docker run --name containerName -p 80:80 -d nginx # 查看所有运行的容器及状态,-a查看所有状态的容器 docker ps # 查看容器运行日志 docker logs -f nTest # 进入容器,执行命令,-it给当前容器创建一个标准输入输出终端,nTest容器名,bash进入容器后执行的命令,是linux终端交互命令 docker exec -it nTest bash # 停止容器 docker stop nTest # 启动容器 docker start nTest # 删除容器, -f强制删除 docker rm nTest数据卷
接触数据和容器的耦合
# 创建数据卷,给数据卷命名html docker volume create html # 查看所有数据卷 docker volume ls # 查看数据卷详细信息 docker volume inspect html # 删除所有未使用的数据卷 docker volume prune # 删除一个或多个指定的数据卷,html为指定数据卷名 docker volume rm html # 创建容器并挂载数据卷到容器内的html目录 docker run --name nTest -v html:/usr/share/nginx/html -p 80:80 nginx:latestDockerFile
自定义镜像
| 指令 | 说明 | 示例 |
|---|---|---|
| FROM | 指定基础镜像 | FROM centos:7 |
| ENV | 设置环境变量 | ENV key value |
| COPY | 拷贝本地文件到镜像的指定目录 | COPY ./xx /xx |
| RUN | 执行Linux的shell命令,一般是安装命令 | RUN yum install gcc |
| EXPOSE | 指定容器运行时监听的端口 | EXPOSE 8080 |
| ENTRYPOINT | 镜像中应用的启动命令,容器运行时使用 | ENTRYPOINT java -jar xx.jar |
## 示例 ## 指定基础镜像 FROM java:8-apline ## 复制jar包 COPY ./demo.jar /tmp/demo.jar ## 暴露端口 EXPOSE 8090 ## 入口 ENTRYPOINT java -jar /tmp/demo.jarDocker Compose
快速部署分布式应用,通过指令定义集群中的每个容器如何运行(多个docker run的命令转为指令)



