練習使用的mysql被人刪庫刪表了,於是就有了自己搭建一套后台服務的想法,由於目前dicker正流行,正好學習一下新東西,將學習心得記錄一下:
一: 購買阿里雲服務並配置
購買了一台阿里雲的1核2G的雲服務, 2年二百多....還是很優惠的. 點擊雲服務器1對其進行配置
第二部需要創建一個實例,選擇你需要的os系統版本,本人使用的centOS7.4(據說docker挑版本,7.0以下不好使)
第三部需要對實例的安全組進行配置, 為了安全起見,我只開通了公司的ip(基本上每天也就在公司度過)
就這樣,雲服務就可以使用公司ip通過外網訪問進去了
docker簡介:
Docker是一個開源的應用容器引擎,屬於Linux容器的一種封裝,是目前最流行的Linux容器解決方案。docker可以為任何應用創建一個輕量級、可移植的容器,然后容器可以運行在任何安裝有docker的平台上。
Docker 的優勢:
1、更快速的交付和部署
對開發和運維(devop)人員來說,最希望的就是一次創建或配置,可以在任意地方正常運行。
開發者可以使用一個標准的鏡像來構建一套開發容器,開發完成之后,運維人員可以直接使用這個容器來部署代碼。 docker 可以快速創建容器,快速迭代應用程序,大量地節約開發、測試、部署的時間。
2、更高效的虛擬化
docker 容器的運行不需要額外的 hypervisor 支持,它是內核級的虛擬化,因此可以實現更高的性能和效率。(使用了宿主機的內核)
3、更輕松的遷移和擴展
docker 容器幾乎可以在任意的平台上運行,包括物理機、虛擬機、公有雲、私有雲、個人電腦、服務器等。 這種兼容性可以讓用戶把一個應用程序從一個平台直接遷移到另外一個平台。
4、更簡單的管理
使用 docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化並且高效的管理。
一、部署docker環境
1、安裝yum相關工具包yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加docker下載源
(1)添加docker官方源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum makecache fast
(2)添加國內阿里雲下載節點
注:國內連接docker官方提供的源下載速度比較慢,我這里使用的是阿里雲的源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast
3、安裝docker
注:安裝的是docker社區版本yum -y install docker-ce
4、更改鏡像源為國內阿里雲節點,並指定docker數據存儲目錄
mkdir -p /data/docker mkdir -p /etc/docker vim /etc/docker/daemon.json
注:docker安裝好后默認沒有此文件,需要手動創建,添加阿里雲鏡像節點,並指定docker存儲目錄
{
"registry-mirrors": ["https://registry.docker-cn.com"], "graph": "/data/docker" }
5、啟動docker,並加入開機啟動
systemctl start docker systemctl enable docker
二、Docker架構
Docker使用客戶端/服務器(C/S)架構模式,使用遠程API來管理和創建docker容器。Docker Client向Docker daemon發起請求,Docker daemon負責構建、運行和分發容器。Docker client也可以通過socket或REST API與遠程的Docker daemon通信。
- Docker daemon:服務端程序,以后台的方式運行。負責創建、運行、監控容器,構建、存儲鏡像。
- Docker client:Docker客戶端,通過命令行或其他工具使用Docker API與Docker daemon通信。
- Images:Docker鏡像,用於創建docker容器的模板,我們通過鏡像來創建docker容器。
- Container:Docker容器,是從鏡像創建的運行實例,每一個容器都相當於一個虛擬的應用環境,通過容器來運行各式各樣的應用。
- Registry:存放Docker鏡像的倉庫,分為公有倉庫和私有倉庫兩種。
三、Docker目錄結構
Docker安裝成功后,默認是沒有存儲目錄的,在啟動的時候才會創建存儲目錄。我們來看下docker都有哪些目錄吧。ls -lh /data/docker/
containerd目錄里存放的是與daemon程序相關的數據。
image和overlay2目錄里存放的是與鏡像相關的數據。每下載一個鏡像,就會在這兩個目錄下生成此鏡像對應的子目錄與數據;每運行一個鏡像,即通過鏡像創建一個容器,這兩個目錄下也會生成相關子目錄與數據信息。
containers目錄里存放的是容器相關的數據,每運行一個容器,就在這個目錄下面生成一個容器Id對應的子目錄與數據。
tmp是臨時文件存放目錄。
四、Docker命令使用
1、systemctl start docker 啟動docker;docker version查看docker版本信息
2.查看docker基本信息
docker info
3.查看docker hub 鏡像庫,可以在鏡像庫中查看可用的docker版本:https://hub.docker.com/ 如搜索mysql: 帶有OFFICIAL的是官方的,
點擊進入后可以查看對應的使用手冊,版本信息,留言貼等信息
4.安裝鏡像,以mysql為例
docker pull mysql:5.7.26
安裝完后可以查看系統中存在的鏡像
docker images
REPOSITORY:鏡像名稱,與鏡像倉庫上的名稱一致
TAG:標記,下載的鏡像默認會使用latest標記
IMAGE ID:鏡像ID
CREATED:鏡像創建時間
SIZE:鏡像占用磁盤空間大小
5. 刪除鏡像
docker rmi mysql:5.7.26
6.生成一條新鏡像 改名后的鏡像和原鏡像使用同一個image id
docker tag mysql:5.7.26 mymysql # 新名稱不能是大寫
7.保存一個tar包在本地 / 從本底加載一個tar包到容器
8.運行一個容器:以mysql為例
docker run --name docker-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=wang053056 -d mysql:5.7.26
--name 給容器命名 -p 宿主機ip映射到容器ip 保證可以通過訪問宿主機訪問到容器
-d 后台運行 不寫的話會造成推出后容器自動關閉
9. 停止運行容器 刪除容器 重新啟動
10.查看某容器運行日志
11.打印基本配置信息
12.登陸容器內部,在容器內部運行shell
-i:打開容器的標准輸入,即以交互模式運行容器
-t:為容器分配一個偽終端
13, 在宿主機和容器中cp文件
docker cp a.txt docker-mysql:/root/
14.查看某端口是否被監聽
15.