• docker安装及配置


    docker下载安装(官方)

    • 卸载旧版本
    sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
    
    • 设置存储卡
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    • 安装docker社区版
    sudo yum install docker-ce
    
    • 启动docker
    systemctl start docker
    

    docker下载安装(阿里云)

    • 确认阿里云yum文件
    vim /etc/yum.repos.d/Centos-7.repo
    
    • 使用yum开始安装docker
    yum install -y docker
    
    • 查看docker版本
    rpm -qi docker
    
    • 启动docker
    systemctl status docker
    

    docker概念

    • 组成
    docker三大基本概念
    
    # 镜像		image
    
    # 容器		container
    
    # 仓库		repository
    
    • docker容器优势
    # 更高效的利用系统资源
    
    # 更快速的启动时间
    
    # 一致的运行环境
    
    # 持续交付和部署
    
    # 更轻松的迁移
    

    docker常用命令

    镜像image
    • 搜索网上的docker镜像
    docker search hello-world		# hello-world 为镜像名字
    
    • 下载docker镜像
    docker pull docker.io/hello-world		
    
    • 查看已经下载的镜像
    docker images
    
    docker image ls
    
    • 运行镜像
    docker run fce 			# fce为镜像id前三位
    
    docker run hello-world	# hello-world 为镜像name
    
    docker run -it centos	/bin/bash		# -it 交互式终端
    
    docker run --name mydocker -it centos /bin/bash	 # 自定义容器名mydocker
    
    • 删除镜像
    docker rmi 镜像id			
    
    docker rmi -f 镜像id			# -f强制删除
    
    容器
    • 查看正在运行的容器
    docker container ls
    
    • 查看运行过的容器
    docker ps -a
    
    • 运行容器
    docker start 容器id
    
    • 进入容器
    docker exec -it	容器id	/bin/bash
    
    • 删除容器
    docker rm 容器id
    
    docker	rm -f 容器id		# -f强制删除
    
    • run & exec
    docker run -it 镜像名 /bin/bash
    
    docker exec it 容器id	/bin/bash
    
    # 两条命令的效果都是进入到一个容器
    
    run:
        """
        run  后面跟的是镜像名;当镜像不存在时,会自动下载
        run  运行这个镜像,并创建一个新容器
        """
        
    exec:
        """
        exec 后面跟的是容器id;
        exec 且该容器一定要是启动状态,如果没有启动要先用docker start 容器id启动
        """
    
    • 容器打包成镜像
    docker commit 容器id
    
    • 导出镜像
    docker save centos > /opt/centos.tar.gz		# 会自动压缩
    
    • 导入镜像
    docker load < /opt/centos.tar.gz
    
    • 查看指定容器的端口映射
    docker port	容器id
    
    • 查看容器内的进程
    docker top 容器id
    
    • 外部访问容器
    # 1. 在容器内运行一个app.py程序,运行在5000端口
    
    # 2. 使用-P参数随机映射一个端口到虚拟机上
    
    	# 2.1 使用-p参数自定义一个端口到虚拟机上,如9000段口
        
    # 我们可以通过虚拟机的ip 加端口进行访问
    

    仓库

    • 发布镜像到dockerhub仓库
    # docker提供了一个类似与github的仓库,你可以把你本地的镜像发布到docker提供的仓库中,这样别人就可以直接从docker仓库中下载你的镜像镜像使用
    
    # 1.注册docker
    https://hub.docker.com/
        
    # 2.在linux中登录dockerhub
    docker login
    
    # 3.改名
    docker tag 原镜像名 账号/镜像名		# 此地一定要保证镜像名前面的tag和账号一致
    	# 如:docker tag centos aaa/centos	 假设dockerhub账号为aaa
    
    # 4.上传
    docker push aaa/centos:latest
        
    # 5.从docker上下载镜像
    docker pull aaa/centos:latest
    
    • 搭建私有仓库
    # 像上面这种镜像仓库是公开的,其他人是可以下载的,并不安全,因此还可以使用docker registry官方提供的私有仓库
    
    # 1.官方提供私有仓库docker registry用法
    https://yeasy.gitbooks.io/docker_practice/repository/registry.html
        
    # 2.一条命令下载registry镜像并且启动私有仓库容器
    docker pull registry
    
    # 3.私有仓库会被创建在容器的/var/lib/registry下,因此通过-v参数将镜像文件存储到本地的/opt/data/registry下,端口映射容器中的5000端口到宿主机的5000端口
    docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
            
    # 4.检查启动registry容器
    docker ps -a
    
    # 5.测试链接容器
    telnet 192.168.xx.xx 5000		# ip + 宿主机的端口
    
    # 6.修改镜像tag,需要以docker registry的地址段开头
    docker tag hello-world:latest 192.168.xx.xx:5000/hello-world:latest
    
    # 7.查看镜像,找到registry镜像
    docker images
    
    # 8.修改配置
    	"""
    	8.1 Docker 默认不允许非 HTTPS 方式推送镜像。我们可以通过 Docker 的配置选项		  来取消这个限制,这里必须写正确json数据
    	"""
        vim /etc/docker/daemon.json			# 打开这个文件
        
        "insecure-registries":["192.168.xx.xx:5000"]	# 添加这个配置
            
    	"""
    	8.2 写入到docker服务中,写入到[Service]配置块中,加载此配置文件
    	"""   
        vim /lib/systemd/system/docker.service	# 打开这个文件
        
        EnvironmentFile=-/etc/docker/daemon.json	# 添加这行配置
        
        systemctl daemon-reload						# 重新加载docker配置
    
        systemctl restart docker			# 重启docker
        
    # 9.因为重启docker服务,所以容器都会挂掉,需要重启容器
    docker ps -a
    docker start 容器id
    
    # 10.推送本地镜像
    docker push 192.168.xx.xx:5000/hello-world
        
    # 11.访问
    浏览器:http://192.168.xx.xx:5000/v2/_catalog
    

  • 相关阅读:
    30行左右代码实现一个类似httprunner的接口框架
    Python中一些高效的数据操作
    使用jsonpath解析多层嵌套的json响应信息
    操作系统的启动流程
    I/O延迟
    存储器
    多线程和多核芯片
    CPU详解(内核态和用户态)
    操作系统
    计算机组成
  • 原文地址:https://www.cnblogs.com/oden/p/10691932.html
Copyright © 2020-2023  润新知