1. 程式人生 > 其它 >docker基本原理和安裝使用

docker基本原理和安裝使用

技術標籤:006-工具使用002-作業系統dockerlinux

Docker 目前已經非常流行,它基於Linux 名稱空間、控制組和 UnionFS 三大技術。使用docker可以使應用之間互相隔離,互不干擾;一次編譯到處執行。
名稱空間 (namespaces) 是 用於分離程序樹、網路介面、掛載點以及程序間通訊等資源的方法。
Control Groups(簡稱 CGroups) 能夠隔離宿主機器上的物理資源,例如 CPU、記憶體、磁碟 I/O 和網路頻寬。一個 CGroup 有一組相同的標準和引數限制的程序。
UnionFS用於把多個檔案系統『聯合』到同一個掛載點的檔案系統服務。[1]

基本安裝使用

  1. 安裝需要的軟體包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 設定源, 優先國內,速度快
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  1. 更新yum包索引
    yum makecache fast

  2. 安裝Docker CE
    yum install docker-ce

  3. 啟動
    systemctl start docker
    systemctl enable docker

  4. 拉去映象
    docker pull centos:centos7.2.1511

  5. 其他
    建立容器並指定網絡卡模式
    docker run –-privileged=true -itd --name demo --network=host centos:7.2.1511
    docker掛載目錄
    docker run -d -e “container=docker” –-privileged=true -v /sys/fs/cgroup:/sys/fs/cgroup –-name centos:centos7.2.1511 /usr/sbin/init

    docker直接安裝mariadb
    docker run --privileged -d --restart=always -e TIMEZONE=Asis/Shanghai -e MYSQL_ROOT_PASSWORD=root -e SERVER_ID=1 -v /opt/data/mariadb/dbdata:/var/lib/mysql -p 3306:3306 mariadb --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

  6. docker常用命令
    檢視映象 docker images
    檢視容器 docker ps -a

[[email protected] ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
blackboxback        latest              f8ae50a0e292        6 months ago        834MB
centos              7.2.1511            9aec5c5fe4ba        22 months ago       195MB
centos              centos7.2.1511      9aec5c5fe4ba        22 months ago       195MB
[[email protected] ~]# docker ps -a
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS                      PORTS               NAMES
91237e59bea0        centos:7.2.1511         "/usr/sbin/init"         6 months ago        Exited (255) 5 months ago                       xx1
39d81809cd27        centos:7.2.1511         "/usr/sbin/init"         6 months ago        Exited (255) 5 months ago                       xx2
a068fa9a4b7f        centos:7.2.1511         "/usr/sbin/init"         6 months ago        Exited (255) 6 months ago                       hhp
2865ab62ca5f        centos:7.2.1511         "/usr/sbin/init"         6 months ago        Exited (137) 6 months ago                       hhproxy
67d02ea71169        centos:7.2.1511         "/usr/sbin/init"         6 months ago        Exited (255) 6 months ago                       proxy

參考:
[0] https://www.runoob.com/docker/docker-install-centos.html
[1] https://www.linuxprobe.com/docker-technology-principle.html