01 Docker

一 Docker介绍

构建轻量虚拟化境, 契合云计算"实例水平扩展,资源动态调整"的需求,Docker 可能成为云计算的基石.

Docker 设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署的生产环境的一致性.

Docker 借鉴了标准集装箱的概念, 集装箱运输货物,而Docker 运输软件.

1.1 Docker 守护进程

#### 1.1.1安装 Docker

下面为 centos 系统安装 docker 的方法, 其他系统需要自行查找,打开下面网址,即可看到其他系统安装的方法.

https://docs.docker.com/install/linux/docker-ce/centos/

02 卸载之前的docker
	sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
                  
03 安装必要的依赖
	sudo yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2
    
04 设置docker仓库  [设置阿里云镜像仓库可以先自行百度,后面课程也会有自己的docker hub讲解]	
	sudo yum-config-manager \
      --add-repo \
      https://download.docker.com/linux/centos/docker-ce.repo
      
    [访问这个地址,使用自己的阿里云账号登录,查看菜单栏左下角,发现有一个镜像加速器:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors]

05 安装docker
	sudo yum install -y docker-ce docker-ce-cli containerd.io
	

1.1.2 启动Docker

06 启动docker
sudo systemctl start docker

07 测试docker安装是否成功
sudo docker run hello-world

#### 1.1.3 docker基本体验

01 创建tomcat容器
	docker pull tomcat
	docker run -d --name my-tomcat -p 9090:8080 tomcat

02 创建mysql容器
	docker run -d --name my-mysql -p 3301:3306 -e MYSQL_ROOT_PASSWORD=jack123 --privileged mysql
	
03 进入到容器里面
	docker exec -it containerid /bin/bash

1.5.4 可能有的疑惑

(1) docker pull在哪拉取的镜像?

​ 默认是在hub.docker.com

(2) docker pull tomcat拉取的版本是?

​ 默认是最新的版本,可以在后面指定版本":"

(3) 简单先说一下命令咯

docker pull        拉取镜像到本地
docker run         根据某个镜像创建容器
-d                 让容器在后台运行,其实就是一个进程
--name             给容器指定一个名字
-p                 将容器的端口映射到宿主机的端口
docker exec -it    进入到某个容器中并交互式运行

1.2 Docker 图形界面

参考: Docker 图形化页面管理工具使用

  1. 查看镜像

docker search dockerui

  1. 下载镜像

docker pull abh1nav/dockerui

  1. 启动dockerui容器,这里需要注意带上privileged参数,提升权限

docker run -d --privileged --name dockerui -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock abh1nav/dockerui

​ 有可能有防火墙的问题.

  1. 浏览器查看dockeruihttp://localhost:9000 或者 curl http://localhost:9000

展示结果如下:

在这里插入图片描述

1.3

二 常用命令

2.1 查看Docker程序是否存在

docker info

2.2 查看 容器 日志信息

docker logs container_name // -f 相当于 tail -f 循环

如: docker logs -f elasticsearch_zoro

2.3 查看容器中的进程

docker top container_name

2.4 检查容器

docker inspect 3e27d4875c06 //容器Id

2.5 容器中查看ip

cat /etc/hosts #可以查看ip

或者

ip a
会出现 ip , command not found
执行apt-get update & apt-get install -y iproute2 再试试,

三 docker-compose

参考: docker-compose使用教程

docker-compose基本使用

Docker Compose

安装 docker-compose

https://docs.docker.com/compose/install/

​ Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境。
  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
    最后,执行 docker-compose up 命令来启动并运行整个应用程序。

docker-compose logo

​ 我们从logo上可以看出来, 说白了, 这个东西就是一个管理容器的工(zhang)具(yu), 我们可以方便的使用它来管理我们的docker容器, 可以极大程度的简化命令行的复杂操作.

默认情况下将文件命名为docker-compose.yml,进入当前目录下去执行docker-compose命令就可以了

docker-compose常用的命令有:

docker-compose up -d启动容器,如果镜像不存在则先下载镜像,如果容器没创建则创建容器,如果容器没启动则启动
docker-compose down停止并移除容器
docker-compose restart重启服务

3.1 docker-compose.yml 文件模板

version: '3.7'
services:
    #声明构建容器的名称,docker-compose start和stop命令可以使用
    testhttpweb:
    #使用指定目录下的Dockerfile进行构建
    build: .
    #相当于docker run命令的-p参数,用于声明对外开放的端口
    ports:
        - "5000:5000" 
       - "8010:80"
docker 和 docker-compose对应
  • version 具体的版本号,请参考官网 https://docs.docker.com/compose/compose-file/ , docker-compose 和 docker 版本兼容性。

例子: mysql

version: '3.7'
services:
 db1:
   image: mysql
   ports:
    - "3306:3306"
   environment:
    - MYSQL_ROOT_PASSWORD=123456
    - MYSQL_DATABASE=zoro
   volumes:
    - "/home/chenershuai/composetest/mysql:/var/lib/mysql"

docker-compose up 报错 3306端口占用,杀不死;

解决方法:【Docker】安装MySQL彻底解决3306端口占用问题

  • environment

    环境变量

  • volumes

    将主机的数据卷或着文件挂载到容器里。

    表示:本地文件夹互相映射到容器/var/lib/mysql的文件夹中, 两个文件夹中文件同步的。

四 Docker Dockerfile

引用 docker-dockerfile

4.1 什么是 Dockerfile?

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

4.2 使用 Dockerfile 定制镜像

这里仅讲解如何运行 Dockerfile 文件来定制一个镜像,具体 Dockerfile 文件内指令详解,将在下一节中介绍,这里你只要知道构建的流程即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值