1.简介
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
2.Docker的应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
3.Docker 的优点
1、快速,一致地交付您的应用程序
2、响应式部署和扩展
3、在同一硬件上运行更多工作负载
4.Docker镜像仓库
Docker Hub,目前 Docker 官方维护了一个公共仓库 Docker Hub-https://hub.docker.com。
大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。
5.Docker常用命令
5.2.搜索镜像
docker search mysql
5.1.拉取镜像
docker pull 【镜像名】:【版本号】
docker pull mysql:5.7.41
5.2.查看镜像
docker images
docker images
5.3.运行镜像
docker run
-d: 后台运行容器,并返回容器ID;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
--name="mysql": 为容器指定一个名称;
--volume , -v: 绑定一个卷
--restart always 重启docker时,自动启动相关容器
-e MYSQL_ROOT_PASSWORD="111111": 设置环境变量;
--privileged=true 添加启动权限
eg:
docker run -d -p 3306:3306 --name mysql
-v /data/mappingdata/mysql/my.cnf:/etc/mysql/my.cnf
-v /data/mappingdata/mysql/data:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=111111
--privileged=true --restart always mysql:5.7.41
5.4.查看日志
docker logs
-f : 跟踪日志输出
--tail :仅列出最新N条容器日志
docker logs -f mysql
实时日志
docker logs --tail 10 mysql
后10行日志
5.5.进入docker容器的bash
docker exec
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
docker exec -it mysql /bin/bash
5.6.查看容器配置
docker inspect CONTAINER ID
5.7.yum 拷贝
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
实例
将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
docker cp /www/runoob 96f7f14e99ab:/www/
将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
docker cp /www/runoob 96f7f14e99ab:/www
将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
docker cp 96f7f14e99ab:/www /tmp/
6.安装软件通用教程
6.1.先run一个容器
docker run --name nginx -d -p 80:80
--restart=always --privileged=true
nginx
6.2.使用docker cp命令拷贝出来配置
docker cp nginx:/etc/nginx/nginx.conf /data/mappingdata/nginx/conf/nginx.conf
6.3.移除掉已经run的容器
docker rm -f nginx
6.4.指定完映射文件后重新run新容器
docker run --name nginx -d -p 80:80
--restart=always --privileged=true
-v /data/mappingdata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
nginx
网友评论