1.docker初體驗:
(1)安裝Nginx步驟:
? ? 官網(wǎng)下載Nginx源碼包 進行:wget
? ? tar
? ? 創(chuàng)建Nginx用戶
(2)編譯安裝
? ? ./config...
? ? 修改配置文件
? ? 啟動
(3)啟動第一個容器
? ##配置docker鏡像加速
? ? ? vi /etc/docker/daemon.json
? ? ? {
? ? ? ? "registry-mirrors": ["https://registry.docker-cn.com"]
? ? ? }
? ? 重啟一下docker:
? ? [root@docker ~]# systemctal restart docker
? ? [root@docker ~]# docker run -d -p 80:80 nginx
? 解釋:
? ? run:(創(chuàng)建并運行一個容器)
? ? -d :放在后臺
? ? -p : 端口映射
? ? nginx docker 鏡像的名字
=============================================================?
2.關于docker的鏡像管理:
1)搜索鏡像
? ? docker search
? ? 選擇鏡像的建議:
? ? ? 1.優(yōu)先考慮官方的
? ? ? 2.stars數(shù)量多的
? 2)獲取鏡像
? ? docker pull(push)
? ? 鏡像加速器:阿里加速器苍在,daocloud加速器你踩,中科大加速器,Docker 中國官方鏡像加速等:
? ? https://registry.docker-cn.com
? 3)官方pull? ? docker pull centos:6.8(沒有指定版本,默認會下載最新版)
? ? 私有倉庫pull docker pull daocloud.io/huangzhichong/alpine-cn:latest
? 4)關于鏡像的一些命令:
? ? 查看鏡像列表:
? ? ? 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
=============================================================
3.docker的容器管理:
? 1) docker run -d -p 80:80 nginx:latest
? ? ? ? run (創(chuàng)建并運行一個容器)
? ? ? ? -d :放在后臺
? ? ? ? -p : 端口映射
? ? ? ? -v :源地址(宿主機):目標地址(容器)
? 2)? nginx docker鏡像的名字
? ? ? ? ? docker run -it --name centos6 centos:6.9 /bin/bash
? ? ? ? ? -it 分配交互式的終端
? ? ? ? ? --name 指定容器的名字
? ? ? ? ? /bin/sh 覆蓋容器的初始命令
? ?3)啟動容器***
? ? ? ? ? docker run image_name
? ? ? ? ? docker run -it image_name CMD
? ? ? ? ? docker run ===docker create + docker start
? 4)停止容器
? ? ?docker stop CONTAINER_ID
? ? ?殺死容器
? ? ?docker kill container_name
查看容器列表
? ? ? docker ps
? ? ?docker ps -a
? ? 5) 進入容器(目的浅辙,調試,排錯)
? ? ? ? ? docker exec (會分配一個新的終端tty) *****
? ? ? ? ? docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
? ? ? ? ? docker exec -it 容器id或容器名字 /bin/bash (/bin/sh)
? ? ? ? ?docker attach(使用同一個終端)
? ? ? ? ?docker attach [OPTIONS] CONTAINER
? ?nasenter(安裝 yum install -y util-linux 棄用)
? ? ? 注意:臨時退出容器:容器回到 宿主機:
? ? ? 同時: ctrl + p , q
? ? 6)刪除容器
? ? ? ? ? docker rm
? 批量刪除容器
? ? ? ? docker rm -f 'docker ps -a -q'
總結:docker容器內(nèi)的第一個進程(初始命令)務必是一直處于前臺運行的狀態(tài)(必須夯住)乞旦,否則這個容器,就會處于退出狀態(tài)续膳。? ?
注意:業(yè)務在容器中運行:夯住,啟動服務?
4.docker容器 的網(wǎng)絡訪問(端口映射)
docker0:172.17.0.1? jumpserver:172.17.0.2? nginx: 172.17.0.3
指定映射(docker 會自動添加一條iptables規(guī)則來實現(xiàn)端口映射)
? -p hostPort:containerPort
? -P ip:hostPost:containerPort? 多個容器都想使用80端口
? -p ip::containerPort(隨機端口)
? -p hostPort:containerPort:udp
? -p 81:80 -p 443:443 可以指定多個-p
隨機映射
? ? docker run -P (隨機端口)
通過iptables來實現(xiàn)的端口映射
隨機端口范圍:內(nèi)核參數(shù)決定的:32768 ---60999
5. docker的數(shù)據(jù)卷管理:
/usr/share/nginx/html
-v /opt/XXX:/usr/share/nginx/html
持久化:
數(shù)據(jù)卷(文件或目錄)
? -v 卷名:/data
? -v src (宿主機的目錄):dst(容器的目錄)
數(shù)據(jù)卷容器
? --volumes-from (跟某一個已經(jīng)存在的容器掛載相同的卷)
基于nginx啟動一個容器收班,監(jiān)聽80或者81坟岔,訪問80,出現(xiàn)nginx
默認歡迎首頁摔桦,訪問81社付,出現(xiàn)XXX。
-p 80:80 -p 81:81 -v XXX:? XXX -v? XXX:XXXX
eg: docker run -d -p 80:80 -v /opt/xiaoniao:/usr/share/nginx/html
nginx:latest
基于nginx多端口的多站點邻耕。
=================================================================