美文网首页
Docker简介

Docker简介

作者: 222AblackA | 来源:发表于2019-04-02 16:59 被阅读0次

    Docker简单操作:

    Docker是一个为开发者和系统管理员在容器中开发、部署和运行的平台,灵活、轻量级、可互换、部署简单、扩展性极强的容器

    a. 镜像image和容器container

    镜像是一个包含所有需要运行的文件组成的包,比如代码、可运行文件、库、
        环境变量和配置文件等;
    容器是镜像运行的一个实列,是运行镜像后产生的;
    容器和虚拟机区别:
    容器和进程一样直接在主机操作系统上运行,不占用更多的资源;
    虚拟机直接模拟一个虚拟操作系统,程序实在模拟操作系统里面运行,占用更多资源;
    
    Docker CE -- 代表社区版本
    Docker EE -- 代表企业版本
    

    b. 安装Docker

        第一步: 安装yum-utils -- 
        sudo yum install -y yum-utils 
        
        第二步: 设置稳定版本的repository仓库(最好不要装不稳定版本的docker)
        
        sudo yum-config-manager --add-repo https://docs.docker.com/engine/installation/linux/repo_files/ubuntu/docker.repo
        
        sudo apt-get update  # 更新 
        
        第三步: 安装并启动docker社区版
        
        sudo apt-get install docker-ce
        sudo systemctl start docker 或者 service start docker
        
        验证时候安装成功: sudo docker run hello-world (出现一堆代码,包含了hello from docker,说明安装并启动成功)
        
        卸载docker命令: sudo yum remove docker-ce 或者 sudo rm -rf varlib/docker
        查看docker版本: docker version
        查看docker信息: docker info
        列出docker下所有容器: docker image ls     
          
        第四步: 在docker中运行自己的项目(整体搬迁运行影像)
        **需要Dockerfile进行配置,Dockerfile定义了容器内的环境**
        
        mkdir docker_test  (可以创建在home目录下)
        cd docker_test
        vim Dockerfile # 将下面代码写入Dockerfile(根据项目具体情况设置具体参数)
                
                # Use an official Python runtime as a parent image
                FROM python:2.7-slim
                # Set the working directory to /app
                WORKDIR /app
                # Copy the current directory contents into the container at /app
                ADD . /app
                # Install any needed packages specified in requirements.txt
                RUN pip install -i https://pypi.douban.com/simple -r requirements.txt
                # Make port 80 available to the world outside this container(docker容器内部端口)
                EXPOSE 80
                # Define environment variable
                ENV NAME World
                # Run app.py when the container launches (一般是manage.py)
                CMD ["python", "app.py"]
        vim requirements.txt # 需要导入的pyhton包
                Flask
                Redis
        将项目的代码拷贝到docker_test文件夹下(这里的测试的项目代码是 app.py)
        
        第五步:创建docker镜像(最后有一个点符号)
        docker build -t first_docker .
        docker image ls (查看已有镜像或者docker images)
        
        第六步: 重启docker
        service docker restart 或者systemctl restart docker
        
        第七步: 运行容器
        docker run -p 4000:80 first_docker
        
        查看启动的docker容器: docker ps
        停止指定的docker容器: docker container stop 85ac7faf8ea3
                             docker stop  85ac7faf8ea3
        删除指定的容器: docker rm 容器名或id (stop状态)
                       docker rm -rf 容器名或id(运行状态也能删除) 
        进入容器: docker exec -it e1066fe2db35 /bin/bash 
                  docker exec 是docker镜像的连接命令,类似ssh一样
    

    c. 相关命令

        查看已有容器:docker ps (正在运行的)
                    docker ps -a (所有容器,包括停止的)
        镜像打包成tar文件:
        docker save -o <保存路径> <镜像名称:标签>
        docker save -o ./ubuntu18.tar ubuntu:18.04
        
        镜像加载拷贝到服务器中:
        docker load --input ./ubuntu18.tar
    
        docker容器和宿主机之前的文件拷贝:
        docker cp 宿主机文件路径 容器名:容器内路径
        docker cp 容器名:容器内路径 宿主机文件路径
    
        容器自动重启:
        docker run --restart=always  (启动容器运行时加always参数)
        docker update --restart=always <CONTAINER ID>(已经运行的容器update)
    
        查看容器日志:
        docker logs 容器名
    
        镜像更新/上传/拉取(已配置远程仓库,否则需要docker login登录):
          更新命令: docker commit <容器名或id> <镜像名或id:标签>
          提交命令:docker push <镜像名或id:标签>
          拉取docker命令: docker pull <镜像名或id:标签>
    

    d. docker hub仓库 和daocloud镜像仓库

    docker hub是国外的平台,连接速度可能比较慢,所以国内一般在daocloud管理镜像

    注册daocloud平台:
    
    在daocloud平台注册账号密码,然后创建自己的组织
    
    登录daocolud平台:
    docker login daocloud.io # 输出账号、密码
    
    给要上传云平台的镜像打标签(v1):
    docker tag first_docker daocloud.io/my_team/first_docker:v1
    上传镜像:
    docker push daocloud.io/my_team/first_docker:v1
    
    从服务器拉取镜像并运行容器:
    docker run -p 4000:80 daocolud.io/my_team/seconds_docker:v1
    

    e. 私有仓库(拉取docker ce或者ee版本镜像,在服务器启动、创建私有docker仓库):

    Docker配置远程仓库地址(访问远程私有仓库):
             vim /etc/docker/daemon.json 
        将以下代码中的ip改成需要连接的远程仓库地址:
        {"registry-mirrors": ["https://3c9ywpon.mirror.aliyuncs.com"],"insecure-registries":["192.168.3.153:5000"]}
        "registry-mirrors"是配置镜像源(国外镜像源网速慢,可配置国内镜像源,阿里镜像源等);
        如果有多个私有仓库要链接,将其他私有仓库地址添加到这个json文件"insecure-registries"的值的列表中就行;
        重启docker -- systemctl restart docker

    相关文章

      网友评论

          本文标题:Docker简介

          本文链接:https://www.haomeiwen.com/subject/dhngbqtx.html