Docker学习笔记

在这里插入图片描述
架构
客户端
| client 运行docker开头的命令
服务引擎
docker是管理容器的引擎

容器
| container
镜像
| images
仓库
| docker hub

docker的安装
运行机制
1.Docker启动服务
2.下载镜像
docker pull 镜像名称:镜像版本号
| 版本号不是必选,可配置

3.启动该镜像到一个容器
    docker run 容器id/名称
    | 前台运行
    docker run -d 容器id/名称
    | 后台运行

4.容器里面运行我们想要的程序
    docker images
    | 查看所有镜像
    ps -ef | grep tomcat 
    

客户端访问并启动运行容易
    docker run -d -p 8080:8080 tomcat
    | 将宿主机(服务器)的80端口映射到docker容器内的80端口

进入容器中的应用
    docker exec -it containerid bash 
    | -i 交互式的,保持标准输入流打开
    |         |         | -t 表示虚拟控制台,分配到一个虚拟控制台

关闭容器
    docker stop containid

查询所有运行的容器
    docker ps

镜像
是一个只读的模板,把别人或者自己制作好的镜像直接拿来使用
组成结构
下载镜像
docker pull

删除镜像
    docker rmi 镜像id/名称

容器
启动
通过镜像启动容器
| docker run -d redis
将终止状态的容器重新启动
| 查询所有容器 docker ps -a
| | | docker start 容器id/名称

停止容器
    docker stop 容器id/名称
    | 

开始容器
    docker start容器id
    | 

删除容器
    docker rm 容器id/名称
    | 先停掉容器然后再删除的

查看容器
    docker ps 
    docker ps  -q
    docker  ps  -a

查看容器的更多信息
    docker inspect 容器id/名称 

停止所有容器
    docker stop $(docker ps -q)

删除全部容器
    docker rm $(docker ps -aq)

停止并删除所有容器
    docker stop $(docker ps -q) & docker rm $(docker ps -aq)

仓库
最大的公开仓库
| https://hub.docker.com/
查找镜像
docker search 镜像名称

下载指定来源镜像
    docker pull 名称/镜像名称
    | 下载阿里云镜像docker pull  aliyun/Nginx

redis
默认端口 6379

使用示例
Docker 安装Mysql
下载mysql镜像
docker pull mysql
docker run -t 3306:3306 -e MYSQL_DATABASE=workdb -e MYSQL_ROOT_PASSWORD=123456 -D mysql:latest
docker ps

    查找mysql位置
        which mysql

    进入容器
        docker exec -it 容器id bash

    登录mysql
        mysql -uroot -p
        show database
        use workdb
        show table
        修改密码
            ALTER USER "root "@''localhost" IDENTIFIED BY "123456"

        授权远程登录访问
            CREAT USER 'user1'@'%' IDENTIFIED WITH mysql_native_password  BY '123456'
            | 给用户user授权
            GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%'
            | 任何情况下,都可以通过user1的账号进行访问



Docker 安装 zookeeper
    查找本地镜像
    下载zookeeper镜像
    关联端口启动镜像
    进入容器

Docker 安装Nginx
    查看本地镜像
        docker images

    下载Nginx镜像
        docker pull Nginx
        docker  run  -p 80:80 nginx/镜像id

    进入容器
        dcoker exec -it 镜像id  bash

    浏览器访问Nginx
        localhost:80

    Nginx部署静态网站
        将linux的文件拷贝到docker某个容器目录下
        docker cp [/root/test.html] 容器名称:容器中具体目录


Docker 安装ActiveMq
    没有官方镜像的情况
    下载指定贡献者的ActiveMq镜像
        docker pull webcenter/activemq
        docker  run  -p 9161:8161 activemq

    启动镜像
    进入容器

使用Docker自定义镜像
认识Dockerfile文件
基础镜像信息
维护这信息系
镜像操作指令
容器启动时执行指令

制作JDK镜像
    dockerfile内容
        FROM centos:latest
        MAINTAINER<namei>
        | 镜像作者是谁
        ADD jdk-8u121-linux-x64.tar.gz /usr/local
        | 复制指定的源到容器当中去
        ENV JAVA_HOME usr/local /jdk1.8.0_211
        | 指定一个环境变量,会被后续run指令使用,并在容器运行时保持
        ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
        ENV  PATH $Path:$JAVA_HOME/bin 
        CMD java -version
        | 指定启动容器时执行的命令,每个dockerfile只能有一条CMD命令

    构建镜像
        docker build -t  镜像名称:镜像标签

    运行容器
        


制作Tomcat镜像
    定义dockerfile文件
        FROM centos:latest
        | 从哪个镜像继承过来,用哪个镜像作为基础镜像
        MAINTAINER<namei>
        | 镜像作者是谁
        ADD apache-tomcat-8.5.24.tar.gz /usr/local
        | 复制服务器中指定的源到容器当中去
        ENV CATALINA_HOME usr/local /apache-tomcat-8.5.24
        | 指定一个环境变量,tomcat本身的,会被后续run指令使用,并在容器运行时保持
        ENV PATH $PATH:$CATALINA_HOME/lib:$CATALINA_HOME/lib
        | 指定环境变量 $PATH 是linux本身的PATH;$CATALINA_HOME/lib:$CATALINA_HOME/lib是tomcat本身的PATH
        🎯EXPOSE 8080
        | 告诉docker服务端容器暴露的端口号,在启动容器的时候需要通过-p映射端口,docker主机会自动分配一个端口转发到指定的端口
        |             |             | 
        CMD /usr/local/apache-tomcat-8.5.24/calalina.sh run

    构建镜像
        docker build -t  wangjy166-tomcat-8.5.24 .
        | ‘’.‘’表示使用当前目录下的dockerfile进行构建

    运行镜像
        docker run -d -p 8080:8080  镜像id
        | -d为后台运行,可以不写,直接前台运行


制作mysql镜像
    定义dockerfile文件
        FROM centos:centos6
        | 从哪个镜像继承过来,用哪个镜像作为基础镜像
        |             |             | 最新的centos可能mysql的支持不是很好,所以指定6
        MAINTAINER<namei>
        | 镜像作者是谁
        🎯RUN yum install mysql-server mysql -y
        | 安装mysql服务端和客户端
            yum install
            | 安装软件
             mysql-server mysql
            | 服务端和客户端,空格分割
            -y
            | 自动确认

        RUN  /etc/init.d/mysqld star &&\ mysql -e "grant all privileges on  *.*  to  ‘root@%’ identifield by '123456' WITH GRANT OPTION;"&&\ mysql -e "grant all privileges on  *.*  to  ‘root@localhost ’ identifield by '123456' WITH GRANT OPTION;"&&\ mysql -uroot -p 123456 -e "showdatabase"
        | 执行命令,命令行中如果需要换行 使用\ 进行连接
            \ mysql -e "grant all privileges on  *.*  to  ‘root@%’ identifield by '123456' WITH GRANT OPTION;"&&
            | 给所有用户授权root用户,并将root密码设置为123456,%是任何ip都可以访问mysql的
            \ mysql -e "grant all privileges on  *.*  to  ‘root@localhost ’ identifield by '123456' WITH GRANT OPTION;"&&
            | @localhost 本地操作mysql,是具备所有mysql的权限的

        EXPOSE 3306
        CMD /usr/bin/mysqld_safe

    构建镜像
        docker build -t wangjy166-mysql .

    运行镜像
        docker run -d -p 3306:3306 镜像id


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值