Docker基礎教程

2021-09-13 16:52:40 字數 3500 閱讀 6883

什麼是docker

docker 是世界領先的軟體容器平台。開發人員利用 docker 可以消除協作編碼時「在我的機器上可正常工作」的問題。運維人員利用 docker 可以在隔離容器中並行執行和管理應用,獲得更好的計算密度。企業利用 docker 可以構建敏捷的軟體交付管道,以更快的速度、更高的安全性和可靠的信譽為 linux 和 windows server 應用發布新功能。

docker 屬於 linux 容器的一種封裝,提供簡單易用的容器使用介面。它是目前最流行的 linux 容器解決方案。docker 將應用程式與該程式的依賴,打包在乙個檔案裡面。執行這個檔案,就會生成乙個虛擬容器。程式在這個虛擬容器裡執行,就好像在真實的物理機上執行一樣。有了 docker,就不用擔心環境問題。

為什麼要用docker

容器除了執行其中應用外,基本不消耗額外的系統資源,使得應用的效能很高,同時系統的開銷盡量小。傳統虛擬機器方式執行 10 個不同的應用就要起 10 個虛擬機器,而docker 只需要啟動 10 個隔離的應用即可。

1、更快速的交付和部署

對開發和運維人員來說,最希望的就是一次建立或配置,可以在任意地方正常執行。

開發者可以使用乙個標準的映象來構建一套開發容器,開發完成之後,運維人員可以直接使用這個容器來部署**。 docker 可以快速建立容器,快速迭代應用程式,並讓整個過程全程可見,使團隊中的其他成員更容易理解應用程式是如何建立和工作的。 docker 容器很輕很快!容器的啟動時間是秒級的,大量地節約開發、測試、部署的時間。

2、更高效的虛擬化

docker 容器的執行不需要額外的 hypervisor 支援,它是核心級的虛擬化,因此可以實現更高的效能和效率。

3、更輕鬆的遷移和擴充套件

docker 容器幾乎可以在任意的平台上執行,包括物理機、虛擬機器、公有雲、私有雲、個人電腦、伺服器等。 這種相容性可以讓使用者把乙個應用程式從乙個平台直接遷移到另外乙個。

4、更簡單的管理

使用 docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化並且高效的管理。

centos安裝docker

> sudo yum-config-manager

--add-repo

> sudo yum install docker-ce docker-ce-cli containerd.io

> 啟動docker:sudo systemctl start docker

> systemctl start docker.service

> 開機自啟動:sudo systemctl enable docker

安裝docker容器管理

docker volume create portainer_data

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

訪問你的 ip:9000 即可進入容器管理頁面。

搭建私有倉庫
docker pull registry

docker run -d -v /registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name registry registry:latest

客戶端新增daemon->insecure registries

檢視是否安裝成功:curl http://ip:5000/v2/_catalog

常用的命令
檢視執行容器:docker ps

檢視所有容器:docker ps -a

進入容器: docker exec -it # /bin/bash

停用全部執行中的容器:docker stop $

刪除全部容器 docker rm $

停用並刪除容器 docker stop $(docker ps -q) & docker rm $(docker ps -aq)

docker exec -it 容器名字 /bin/bash

redis安裝
安裝redis:docker pull redis

啟動redis: docker run --name redis -p 6379:6379 -d redis --requirepass 「123456」

mysql 安裝
安裝mysql:docker pull mysql5.7.25

建立掛載的目錄: mkdir /data/mysql/data

啟動mysql: docker run --name mysql5.7 -p 3306:3306 -v /data/mysql/data:/var/lib/mysql -v /data/mysql/conf:/etc/mysql/conf.d -e mysql_root_password=123456 -d mysql:5.7.25

mongo 安裝
安裝mongo:docker pull mongo:4.0.6

建立掛在的目錄: mkdir /data/db

docker run --name mongo -p 27017:27017 -v /data/db:/data/db -d mongo:4.0.6 --auth

jekins 安裝
安裝jekinsdocker pull jekins

docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home jenkins

--name:容器名

--p:對映宿主主機埠

-v:掛載宿主目錄到容器目錄

-e:設定環境變數,此處指定root密碼

-d:後台執行容器

docker 基礎教程

docker優點 docker容器,一次構建,到處執行。構建之後,在任何支援docker的地方都能把它run起來。虛擬機器 作業系統完全隔離。虛擬機器之下還有虛擬機器管理程式。docker 沒有虛擬機器作業系統這層。主要是基於linux核心對容器的實現。1 yum install docker io...

Docker基礎教程 容器

容器是docker的另乙個核心概念。一般來說,映象的乙個執行例項就是容器,容器提供了乙個可寫的檔案層。docker的容器非常輕量級,建立和刪除都很容易。新建容器使用docker create命令 plain view plain copy docker create it ubuntu latest...

Docker基礎教程 網路基礎配置

啟動容器時,如果不知道對應引數,在容器外部是無法通過網路訪問容器內部的。可以通過 p或 p引數指定埠對映。使用 p時,docker會隨機對映乙個49000 49900的埠到容器內部開放的埠。p會對映到指定的埠,支援的格式 主機埠 容器埠 主機埠 容器埠 格式將本地埠對映到容器埠的命令如下 plain...