docker容器的安裝與使用


docker 容器概念

1.什么是容器

容器就是在隔離環境運行的一個進程,如果進程停止,容器就會銷毀.隔離的環境擁有自己的系統文件,IP地址,主機名等.

 

kvm虛擬機,linux,系統文件

程序: 代碼, 命令

進程:正在運行的程序

 

2. 容器和虛擬化的區別

linux容器技術,容器虛擬化和kvm虛擬化的區別
kvm虛擬化: 需要硬件的支持,需要模擬硬件,可以運行不同的操作系統,啟動時間分鍾級(開機啟動流程)

容器:共用宿主機內核,運行服務,損耗少,啟動快,性能高

容器虛擬化:不需要硬件的支持。不需要模擬硬件,共用宿主機的內核,啟動時間秒級(沒有開機啟動流程)

 

總結:
(1)與宿主機使用同一個內核,性能損耗小;
(2)不需要指令級模擬;
(3)容器可以在CPU核心的本地運行指令,不需要任何專門的解釋機制;
(4)避免了准虛擬化和系統調用替換中的復雜性;
(5)輕量級隔離,在隔離的同時還提供共享機制,以實現容器與宿主機的資源共享。

3.docker 介紹

Docker是通過內核虛擬化技術(namespaces及cgroups cpu、內存、磁盤io等)來提供容器的資源隔離與安全保障等。由於Docker通過操作系統層的虛擬化實現隔離,所以Docker容器在運行時,不需要類似虛擬機(VM)額外的操作系統開銷,提高資源利用率。

kvm解決了硬件和操作系統之間的依賴
kvm獨立的虛擬磁盤,xml配置文件

docker解決了軟件和操作系統環境之間的依賴,能夠讓獨立服務或應用程序在不同的環境中,得到相同的運行結果。
docker鏡像有自己的文件系統。

docker容器是一種輕量級、可移植、自包含的軟件打包技術,使應用程序可以在幾乎任何地方以相同的方式運行。開發人員在自己筆記本上創建並測試好的容器,無需任何修改就能夠在生產系統的虛擬機、物理服務器或公有雲主機上運行。

doker安裝

1.安裝

# 刪除歷史文件
rm -fr /etc/yum.repos.d/epel.repo
curl -o /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo
curl -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

2.查看docker版本

命令:docker version

[root@controller ~]# docker version 
Client:
 Version:    17.12.0-ce
 API version:    1.35
 Go version:    go1.9.2
 Git commit:    c97c6d6
 Built:    Wed Dec 27 20:10:14 2017
 OS/Arch:    linux/amd64

Server:
 Engine:
  Version:    17.12.0-ce
  API version:    1.35 (minimum version 1.12)
  Go version:    go1.9.2
  Git commit:    c97c6d6
  Built:    Wed Dec 27 20:12:46 2017
  OS/Arch:    linux/amd64
  Experimental:    false

3.配置docker鏡像加速

vi /etc/docker/daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}    

docker使用

docker操作

啟動        systemctl start docker
守護進程重啟   sudo systemctl daemon-reload
重啟docker服務   systemctl restart  docker
重啟docker服務  sudo service docker restart
關閉docker service docker stop
關閉docker systemctl stop docker
 

鏡像管理

查看鏡像
docker images docker image ls
刪除鏡像
docker rmi 例子:docker image rm centos:latest
導出鏡像
docker save 例子:docker image save centos > docker-centos7.4.tar.gz
導入鏡像
docker load 例子:docker image load -i docker-centos7.4.tar.gz

容器管理

啟動容器
    docker run image_name
    docker run -it image_name CMD
    
    docker run ==== docker create  + docker start

停止容器
    docker stop CONTAINER_ID
殺死容器
    docker kill container_name
查看容器列表
    docker ps
    docker ps –a 
    
進入容器(目的,調試,排錯)
***    docker exec  (會分配一個新的終端tty)
        docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
        
    docker exec -it  容器id或容器名字 /bin/bash(/bin/sh)
        
    docker attach(使用同一個終端)
        docker attach [OPTIONS] CONTAINER
        
    nsenter(安裝yum install -y util-linux 棄用)

刪除容器
    docker rm
批量刪除容器
    docker rm -f `docker ps -a -q`
    
總結:docker容器內的第一個進程(初始命令)必須一直處於前台運行的狀態(必須夯住),否則這個容器,就會處於退出狀態!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM