1什么是容器?
容器就是在隔離的環(huán)境運行的一個進程,如果進程停止,容器就會銷毀。隔離的環(huán)境擁有自己的系統(tǒng)文件,ip地址,主機名等
2容器和虛擬化的區(qū)別
kvm虛擬化
kvm虛擬化: 需要硬件的支持,需要模擬硬件,可以運行不同的操作系統(tǒng),啟動時間分鐘級(開機啟動流程)
容器
容器:共用宿主機內(nèi)核,容器的第一個進程直接運行服務,輕量級,損耗少,啟動快,性能高
容器虛擬化:不需要硬件的支持。不需要模擬硬件,共用宿主機的內(nèi)核,啟動時間秒級(沒有開機啟動流程)
總結:
(1)與宿主機使用同一個內(nèi)核,性能損耗小;
(2)不需要指令級模擬;
(3)容器可以在CPU核心的本地運行指令,不需要任何專門的解釋機制;
(4)避免了準虛擬化和系統(tǒng)調用替換中的復雜性;
(5)輕量級隔離,在隔離的同時還提供共享機制,以實現(xiàn)容器與宿主機的資源共享。
3docker 安裝
10.0.0.11:修改主機名和host解析
rm -fr /etc/yum.repos.d/local.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
sed -i 's#download.docker.com#mirrors.tuna.tsinghua.edu.cn/docker-ce#g' /etc/yum.repos.d/docker-ce.repo
yum install docker-ce -y
3.1 啟動docker
1.啟動docker
[root@docker-01 ~]# systemctl start docker
2.查看docker版本信息
[root@docker-01 ~]# docker version
Client:
Version: 18.09.6
API version: 1.39
Go version: go1.10.8
Git commit: 481bc77156
Built: Sat May 4 02:34:58 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.6
API version: 1.39 (minimum version 1.12)
Go version: go1.10.8
Git commit: 481bc77
Built: Sat May 4 02:02:43 2019
OS/Arch: linux/amd64
Experimental: false
3. docker詳細信息(監(jiān)控用)
[root@docker-01 ~]# docker info
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 1
Server Version: 18.09.6
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-693.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.938GiB
Name: docker-01
ID: DCFJ:W5UP:GOAC:EMQM:75YF:KV4W:Y6PU:4SS4:XFCY:7PBH:FMKQ:NOMJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
3.2配置docker加速
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
3.3 創(chuàng)建一個容器
docker run -d -p 80:80 nginx
run(創(chuàng)建并運行一個容器)
-d 放在后臺
-p 端口映射
nginx docker鏡像的名字
4 docker的鏡像管理
1.搜索鏡像
docker search + 鏡像名
選鏡像的建議:
-優(yōu)先考慮官方
-stars數(shù)量多
2.獲取鏡像
docker pull(push)
鏡像加速器:阿里云加速器,daocloud加速器,中科大加速器,Docker 中國官方鏡像加速:https://registry.docker-cn.com
官方pull docker pull centos:6.8(沒有指定版本,默認會下載最新版)
私有倉庫pull docker pull daocloud.io/huangzhichong/alpine-cn:latest
##配置docker鏡像加速
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
3.查看鏡像列表
docker images 或 docker image ls
4.刪除鏡像
docker rmi 例子:docker image rm centos:latest
5.導出鏡像
docker save 例子:docker image save centos > docker-centos7.4.tar.gz
6.導入鏡像
docker load 例子:docker image load -i docker-centos7.4.tar.gz