zoukankan      html  css  js  c++  java
  • docker-1常用命令

    docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
    docker客户端(Client):连接docker主机进行操作﹔
    docker仓库(Registry):用来保存各种打包好的软件镜像﹔
    docker镜像(Images):软件打包好的镜像﹔放在docker仓库中;

    检查内核版本,必须是3.10及以上 【uname ‐r】 
    安装docker:【yum install docker 】 输入y确认安装 
    启动docker 【systemctl start docker 】查看版本【docker ‐v】
    开机启动docker 【systemctl enable docker】 
    停止docker 【systemctl stop docker】
    

    ------------------------------

    感觉:镜像就像安装包,容器就是安装的应用程序

    docker安装:

    yum包更新 【sudo yum update】
    安装软件包yum-util提供yum-config-manager功能【sudo yum install -y yum-utils device-mapper-persistent-data lvm2】
    设置yum源 【sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo】
    安装docker 【sudo yum install docker -ce】
    查看版本:【docker -v】
    启动docker 根据linux版本进行相应命令

    Docker默认仓库地址是Docker Hub官网地址
    设置ustc镜像便于docker拉取某些需要的镜像 ustc:老牌linux镜像服务提供者 ustc的docker镜像加速器速度很快

    • 编辑文件【vi /etc/docker/daemon.json】
    • 输入内容
    {
      "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
    }
    

    【docker info】docker概要信息
    【docker --help】 docker帮助文档

    镜像命令

    镜像是构建docker的基石,可以将镜像当做容器的源代码 体积小,便携,易分享存储和更新
    由于镜像可能重名(如版本不同),所有通过tag即标签区分
    镜像可以从所设置的源中拉取
    【docker images】 查看镜像
    【docker search 镜像名称】 搜索镜像
    【docker pull 镜像名称】 拉取镜像
    【docker rmi 镜像id】 删除镜像 镜像有运行中的容器时不能删除
    【docker rmi 'docker images -q'】 删除全部镜像

    容器命令

    启动容器:【docker run --name 自己给容器随便取个名称(--name和这里的名称可省) -p 主机端口:容器端口 -d 容器名称:标签】 标签即相当于版本,latest标签即最新的意思

    简单启动【docker run -d 容器名称:标签】
    [-p]为端口映射 [-d]为后台运行

    • 1-创建容器=交互式
      【docker run -it --name 容器名称 镜像名称:标签 /bin/bash 】交互式创建容器后即进入到容器

    -i:表示运行容器
    -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。

    每个容器相当于一个小电脑(服务器)【exit】 退出到宿主机位置 容器停止

    • 2-创建容器=守护式
      【docker run -id --name 容器名称 镜像名称:标签】
      【exec -it 容器名称或id /bin/bash】 进入容器
      【exit】 退出到宿主机位置 容器不停止

    【docker ps】 查看正在运行的容器
    【docker ps -a】 查看所有容器
    【docker ps -l】 查看最后一次运行的容器
    【docker start 容器名称(id)】启动容器
    【docker stop 容器名称(id)】 停止容器
    【docker cp 待拷贝文件路径 容器名称:路径】文件拷贝 宿主机到容器 容器关闭时也可以正常拷贝文件进去

    • 查看容器ip:
      【docker inspect 容器名称】 显示一推信息
      【docker inspect --format='{{.NetWorkSettings.IPAddress}}' 容器名称 】 直接显示ip地址,其他信息也可以这样显示
    • 删除容器:
      【docker rm 容器名称】 需要停止容器后才能进行移除

    目录挂载:宿主机目录和容器目录形成映射关系
    创建容器时加-v参数 后边为 宿主机目录:容器目录 如:
    【docker run -id --name=mycentos3 centos:7 -v /usr/local/myhtml:/usr/local/myhtml】
    【docker run -id -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7】也可以
    目录挂载后,操作宿主机的目录即操作容器的目录

    docker搭建应用环境:

    • mysql部署:
      --拉取镜像:【docker pull centos/mysql-centos7】 后面即mysql路径
      --创建容器:【docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=密码 镜像名称】
      -p 端口映射 操作宿主机33306端口即相当于操作容器的3306端口
      MYSQL_ROOT_PASSWORD= 指定mysql密码
      --mysql图形化界面软件即可进行mysql连接(通过宿主机来连接容器中的mysql) 需要:宿主机ip 密码 用户名 端口==映射的宿主机的端口如33306

    • tomcat部署:
      --拉取镜像 pull
      --创建容器 【docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/webapps tomcat:7-jre7】
      使用目录挂载后由于做了目录映射,直接在网页访问tomcat是无法直接访问的,可以把war包上传到目录下进行访问

    • nginx部署:
      --拉取镜像 pull
      --创建容器 【docker run -di --name=mynginx -p 80:80 nginx】

    • redis部署:
      --拉取镜像 pull
      --创建容器 【docker run -di --name=myredis -p 6379:6379 redis】
      --测试:客户端进入cmd -》redis-cli -h 远程ip -》连接成功,存储查询正常即完成。

    【docker commit 容器名称 镜像名称】 将容器保存为镜像
    【docker run -di --name=myxxx -p 宿主机端口:容器端口 自己容器所保存的镜像名称】

    基于自己容器创建的镜像创建容器,该新建的容器默认包含自己容器所拥有的资源,因为是基于其创建的

    【docker save -o 文件路径 镜像名称】 镜像导出为镜像文件
    【docker load -i 文件路径】 镜像文件恢复为镜像

    Dockerfile:

    一系列命令和参数构成的脚本 这些命令应用于基础镜像并最终创建一个新的镜像
    存在意义:更方便构建镜像文件
    --开发:提供一个完全一致开发环境
    --测试:直接拿开发时构建的镜像或通过dockerfile文件构建一个镜像开始工作
    --运维:部署时可以实现应用无缝移植
    【from image_name:tag】定义使用哪个基础镜像启动构建流程
    【maintainer user_name】声明镜像创建者
    【env key value】设置环境变量(可写多条)
    【run command】dockerfile的核心部分(可写多条)
    【add source_dir/file dest_dir/file】宿主机文件复制到容器内 如果是压缩文件,复制后会自动解压
    【copy source_dir/file dest_div/file】和add类似,但有压缩文件不会被解压
    【workdir path_div】 设置工作目录

    例子:构建jdk1.8镜像 基于centos:7

    --创建目录 上传jdk的tar包 进入目录
    --构建dokerfile文件 名称必须叫Dockerfile 进入文件
    --编写文件 保存

    FROM centos:7
    MAINTAINER xiaoai
    WORKDIR /usr
    RUN mkdir /usr/local/java
    ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
    ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
    ENV JRE_HOME $JAVA_HOME/jre7
    ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
    ENV PATH $JAVA_HOME/bin:$PATH
    

    【docker build -t='jdk1.8' Dockerfile所在目录】 所在当前目录则用 .表示 通过Dockerfile构建镜像

    docker私有仓库

    私有仓库存放镜像,中央仓库存放通用镜像,私有仓库可以存放自己所构建的镜像,便于同一局域网的使用
    --拉取私有仓库镜像 【docker pull registry】
    --创建容器即创建私有仓库 【docker run -di --name=registry -p 5000:5000 registry】
    --网页访问仓库【宿主机ip:容器创建时映射的端口/v2/_catalog】 访问到json数据即私有仓库创建成功
    --修改配置文件使docker信任私有仓库才能上传镜像到私有仓库【vi /etc/docker/daemon.json】添加配置:

    {
      "insecure_registries":["私服ip地址:端口"]
    }
    

    重启docker服务

    镜像上传到私有仓库

    【docker tag 镜像名称 私服ip和端口/镜像名称】如【docker tag jdk1.8 192.168.x.x:5000/jdk1.8】打标签 相当于复制一个镜像为上传做准备
    【docker push 私服ip和端口/镜像名称】 如【docker push 192.168.x.x:5000/jdk1.8】 上传镜像到私服
    访问私服可以查看到上传的镜像
    获取镜像 【docker pull 私服ip和端口/镜像名称】

  • 相关阅读:
    .NET开发框架(六)-架构设计之IIS负载均衡(视频)
    Docker(二)-在Docker中部署Nginx实现负载均衡(视频教程)
    Docker(一)
    .NET Core跨平台部署于Docker(Centos)- 视频教程
    CentOS7 vsftp 安装与配置(视频教程)
    Hyper-V + CentOS7 安装教程(视频)
    火热的云原生到底是什么?一文了解云原生四要素!
    广州.NET微软技术俱乐部微信群各位技术大牛的blog
    .NET开发框架(五)-IIS上部署ASP.NET Core项目教程
    VMware 虚拟机网络配置
  • 原文地址:https://www.cnblogs.com/xiaoaiying/p/13647202.html
Copyright © 2011-2022 走看看