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
相关文章
相关标签/搜索