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
相關文章
相關標籤/搜索