zoukankan      html  css  js  c++  java
  • docker1

    docker的安装

    乌班图安装docker

    # 0 卸载
    sudo apt-get remove docker docker-engine docker.io containerd runc
    # 1 安装必要工具
    sudo apt-get update
    sudo apt-get install 
        apt-transport-https 
        ca-certificates 
        curl 
        gnupg-agent 
        software-properties-common
    # 2 安装GPG证书
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    #换成阿里云
    curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    # 2 写入软件源信息
    #官方
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    #换成阿里云
    sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    
    # 3 更新并安装docker-ce
    sudo apt-get -y install docker-ce
    # 4 开启docker服务
     systemctl status docker
    

    centos安装docker

    # 官方建议docker运行在centos7 以上的系统
    # 安装
    0 卸载
    yum remove docker docker-common  docker-selinux docker-engine
    rm -rf /var/lib/docker
    
    1 更新yum
    yum update
    2 安装需要的软件包, yum-util 
    yum install -y yum-utils device-mapper-persistent-data lvm2
    3 执行(向你的yum源,增加一条记录)
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    4 安装 
    yum install docker-ce
    
    5 验证安装(查看版本)
    docker -v  
    ~]# docker -v  (19年03月12日发布)
    # 自从分了docker-ce和docker-ee以后,以年份命名版本
    Docker version 19.03.12, build 48a66213fe
    
    6 启动docker服务
    systemctl start docker
    
    7 停止docker服务,重启docker服务
    systemctl stop docker
    systemctl restart docker
    
    8 开机启动	
    systemctl enable docker
    
    9 查看概要信息
    docker info(你可能写了一个管理docker的运维平台)
    

    远程仓库

    
    

    镜像操作

    1. 查找你需要的镜像
    	方式一: 到官网上面
        方式二: docker search
            
    2. 拉取镜像
    	docker pull python:3.7
        docker pull hello-world:nanoserver
    
    3. 查看所有镜像
    	docker images
    
    4 删除镜像
    	docker rmi/id( 如果还有基于这个镜像的内容,是不允许删除镜像的,先删除容器,在删除images)
        
        查看容器: docker ps -a
        删除容器: docker rm 容器id
        删除镜像: docker rmi 镜像id
            
    5. 镜像是什么?
     	就是一堆文件, 这堆文件通过docker跑起来,就是容器
        
    6(了解).docker image inspect 84c5f6e03bf0 # 查看某个镜像的所有信息
    

    容器操作

    1. 删除容器:
        docker rm 容器的名字/容器的id
        
    2. 启动并运行容器
    	docker -id --name:mycentos centos:centsos7
        ---通过centos:centos7镜像,创建一个容器名字叫mycentsos,并把它运行起来
    
    3. 查看辑器上正在运行的容器
    	docker ps 
        
    4. 查看宿主机上所有的容器(包括停止的)
    	docker ps -a
        
    5. 停止容器
    	docker stop 容器的名字/id
    
    6. 启动容器
    	docker start 容器的名字/id
    
        
    7. 容器的创建和启动
    		-创建:docker create --name=xxx redis
        docker create --name=test-container centos:centos7 ps -A
        -启动
        docker start test-container
        
        -容器一直运行的原因
        	-它有一条前台进程,一直在运行
            -以后如果自己制作的镜像,运行起容器,必须有个可以夯住的命令
            -如果该命令结束,该容器也就结束了
            
        -创建并启动(run)
        -i:表示运行容器
        -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
        -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
        --name :为创建的容器命名。如果不写,会自动分配一个名字(英文人名)
        -v:表示目录映射关系(前者是宿主机目录,后者是容器目录,映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
        -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
        docker run -it --name=myredis redis # 这个创建并启动用的是最多的
        
    8. 进入容器的几种方式
    	第一种: docker exec -it 容器id  /bin/bash
        第二种: ssh
     
    
    9. 文件拷贝
    	 从宿主机拷贝到容器内部
        	docker cp zc.txt 容器id:/home
            
         从容器内部拷贝到宿主机
            docker cp 容器id:/home/lqz.txt /app
                
    10. 目录挂载(已经跑起来的容器不支持)
    	 docker run -id --name=mycents999 -v /home/lqz:/home/ centos:centos7
    目录挂载,外部文件和容器内部文件互通,一旦挂载,宿主机目录挂载,也会影响容器内部的文件
    
    
    11 端口映射
    	docker run -di -p 6377:6379 redis:latest
        
        # 了解:/usr/local/bin/docker-entrypoint.sh
        
    12 查看容器详细信息
    	docker inspect f81
        # 查看ip地址
        docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
    
    
    总结: 
    创建容器并进入窗口docker run -it --name=myredis redis
    这个容器创建之后但是不会在后台运行
    
    创建容器docker run -id --name=mycentos centos:centos7 这个是创建容器但是不进入容器的内部,并在后台运行进入容器的内部用: docker exec -it 容器的id /bin/bash
    

    在官网上拉取镜像非常慢咋办呢

    配置加速
    	阿里云,清华,做了一个备份
        
        第一步: vi /etc/docker/daemon.json
        第二步: {
        "registry-mirrors": 					["https://docker.mirrors.ustc.edu.cn"]
        }
    

    应用部署

    # 在容器内部署mysql
    # -e表示环境变量
    
    docker run -di --name=mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
    # 官方提供的
    docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
            
    # 在容器内部署redis
    docker run -di -p 6377:6379 redis:latest
            
    # 在容器内部署nginx
    docker run -di --name=mynginx -p 8080:80 nginx
    
  • 相关阅读:
    .NET中使用Memcached的相关资源整理
    Windows 下的.NET+ Memcached安装
    基于.NET的大型Web站点StackOverflow架构分析(转)
    组建学习型项目团队(转)
    WIN 2003服务器终极安全及问题解决方案
    禁止用户远程登录方法方法
    微信公众平台完整开发教程【转】
    【转】Android 最火的快速开发框架XUtils
    【转】Android 最火框架XUtils之注解机制详解
    android开发Proguard混淆与反射
  • 原文地址:https://www.cnblogs.com/zc110/p/14640701.html
Copyright © 2011-2022 走看看