• docker 常用命令(*)


    查找镜像
    https://hub.docker.com/
    search  --> centos7

    一般docker 会有一个基础镜像,中间件镜像,应用镜像,生成一个镜像

    docker build  通过dockerfile生成镜像
    docker images  查看当前本地有哪些docker镜像
    docker run 通过docker镜像生成docker容器(docker help run 查看run命令)
    docker ps  查看正在up运行中的docker镜像,docker ps -a 查看所有的
    docker exec 进入容器
    docker rm   删除容器,-f 强制删除,up状态的也可以删除
    docker stop  停止提一个容器
    docker start  启动一个容器
    docker tag   给镜像打标签(docker tag imageid name:tag)
    docker rmi <image id>  删除images,通过image的id来指定删除谁




    git clone https://git.oschina.net/99fu/security.git

    docker 镜像地址  docker pull centos




    dockerfile 是自动构建docker镜像的配制文件。

    进入到git下,进入centos7目录下
    docker build是用dockerfile生成docker镜像,每个add,生成一个docker layer
    # docker build -t  fu/centos:7.0 .
    -t 给镜像取名字

    完整命令规则: docker build -t registry_url/namespace/imageName:version ./path  
    (--如果没写vestion默契为latest最新的   .如果dockerfile在当前目录下,只用.就可以,否则加上dockerfile路径)

    #docker run -it -d -p 2222:22 --name base fu/centos:7.0
    -it 交互模式,前台启动
    -d   后端其动,返回id号
    -p   小p,如果用 9999:22,重启后还是用指定端口映射,如果占用,报错 
    -P    大P,自动找无人使用的端口映射,如果服务器重启,就会随机用个别的端口映射
    --name 给容器取个名字
    fu/centos:7.0 用哪个镜像启动容器,如果容器在本地不存在,则远程pull,找不到则报错
    Unable to find image 'csphere/centos7:7.1' locally
    Pulling repository docker.io/csphere/centos7
    docker: Error: image csphere/centos7:7.1 not found.
    See 'docker run --help'.


    docker exec -it website /bin/bash
    exec 进入容器
    -it 交互模式
    容器名称
    /bin/bash 
    docker help 中可以看出attach 也可以进入容器中,但是试过会有卡死现象
    exit退出,container 还是处于up状态
    容器是基于基础镜像生成的容器,所以具有centos的命令

    构建中间件镜像myslq
    进入mysql 
    docker build -t fu/mysql:5.4 .
    生成镜像
    docker images 查看当前本地镜像
    启动 mysql的docker容器
    docker run -d -p 3306:3306 --name dbserver fu/mysql:5.4
    返回id串,成功
    docker ps 
    查看是否启动container成功
    docker exec -it dbserver /bin/bash
    进入container
    mysql
    进入db里,可用mysql指令操作啦
     show databases;
     
    刚才启动,没有给环境变量,就是用户与密码,用的默订的

    删除容器,再试一次。

    docker rm 只能删除非up状态的
    docker rm 

    启动容器 docker run -d -p 3306:3306 -v host_dir:container_dir  imageName  (host_dir:container_dir 用于宿主机与容器挂载,数据同步)
    docker run -d -p 3306:3306 -v /var/lib/docker/vfs/dir/mydata:/var/lib/mysql cephere/mysql:5.4   (未设置--name 则自动生成一个name)

    通过docke exec -it  [docke 容器名称或id全或id前几位可区分即可] /bin/bash

    这次创建mysql用户,然后删除容器,再次创建容器,指定到挂载目录,看数是否能将历史自动载入进来。
    create database mydb;
    show databases;
    exit;
    exit
    查看一下,docker是否创健了指定的挂在目录。
    ls /var/lib/docker/vfs/dir/mydata/
    停掉容器 docker stop id
    删除mysql容器,docker rm  id
    再次查看,看挂载目录是否存在
    ls /var/lib/docker/vfs/dir/mydata/

    再次创建一个容器,指定到挂载的目录,确认数据是否能够回来
    docker run -d -p 3306:3306 --name newdb -v /var/lib/docker/vfs/dir/mydata:/var/lib/mysql fu/mysql:5.4
     docker ps
     docker exec -it newdb /bin/bash
     mysql
     show databases;
     可以看到数据库还存在
     
     创建应用
     应用里加入一个Dockerfile 和 init.sh
     .dockerignore文件,可以过滤掉,不须要copy的文件
     
     
     show databases;
     
     启动应用容器
     docker run -d -p 80:80 --name wordpress -e WORDPRESS_DB_HOST=192.168.80.241 -e WORDPRESS_DB_USER=admin -e WORDPRESS_DB_PASSWORD=cephere2015 cephere/wordpress:4.2
     
     
     
     
     
     docker-compose up
     【
    如果docker-compose --version 为无效指令,则须安装docker-compose  组合
    #下载安装
    curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    #授权
    chmod +x /usr/local/bin/docker-compose
    #查版本号
    docker-compose --version
    #当前目录构建组合镜像。须存在docker-compose.yml文件
    docker-compose up -d
     】
     
     




  • 相关阅读:
    C++ Primer 笔记——语句
    C++ Primer 笔记——const 限定符
    C++ Primer 笔记——变量
    C++ Primer 笔记——函数
    C++ Primer 笔记——基本内置类型
    图的遍历算法:DFS、BFS
    python数据结构之图论
    下载文件的协议:HTTP、FTP、P2P
    HTTPS协议
    HTTP协议
  • 原文地址:https://www.cnblogs.com/99fu/p/6050680.html
Copyright © 2020-2023  润新知