docker基本原理和安裝使用
技術標籤:006-工具使用002-作業系統dockerlinux
Docker 目前已經非常流行,它基於Linux 名稱空間、控制組和 UnionFS 三大技術。使用docker可以使應用之間互相隔離,互不干擾;一次編譯到處執行。
名稱空間 (namespaces) 是 用於分離程序樹、網路介面、掛載點以及程序間通訊等資源的方法。
Control Groups(簡稱 CGroups) 能夠隔離宿主機器上的物理資源,例如 CPU、記憶體、磁碟 I/O 和網路頻寬。一個 CGroup 有一組相同的標準和引數限制的程序。
UnionFS用於把多個檔案系統『聯合』到同一個掛載點的檔案系統服務。[1]
基本安裝使用
- 安裝需要的軟體包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
yum install -y yum-utils device-mapper-persistent-data lvm2
- 設定源, 優先國內,速度快
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
-
更新yum包索引
yum makecache fast -
安裝Docker CE
yum install docker-ce -
啟動
systemctl start docker
systemctl enable docker -
拉去映象
docker pull centos:centos7.2.1511 -
其他
建立容器並指定網絡卡模式
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 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 -
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