https://www.docker.com/
Docker is the world's leading software containerization platform
1、什么是Docker
Docker是一個用來裝應用的容器,就像杯子用來裝水,你可以把Hello World放在Docker,也可以把網(wǎng)站放在Docker中,把任何你想得到程序放在Docker
由Docker公司開源,公布在github上
跨平臺,支持Windows、MacOS、Linux
2、理解Docker
2.1 集裝箱
2.2 標準化
- 運輸方式標準化
- 存儲方式標準化
- API接口標準化
2.3 隔離
2.4 Docker解決了什么問題
把操作系統(tǒng)、jdk、tomcat、代碼、配置都放到集裝箱里,用鯨魚運送到服務器上,解決了運行環(huán)境不一致
讓快速擴展彈性伸縮變得簡單
3、走進Docker
Docker的作用,去倉庫把鏡像拉到本地,命令啟動變成容器
Build 構建鏡像
Ship 運輸鏡像
Run 運行鏡像
3.1 鏡像
鏡像就是一系列的文件,應用的文件、應用的運行環(huán)境的文件ee
3.2 容器
容器本質是一個進程
3.3 倉庫
3.4 安裝Docker
apt-get install -y docker.io 安裝命令
service docker start 服務器啟動
3.5 第一個docker鏡像
docker pull [OPTIONS] NAME[:TAG] 拉取的命令
docker images [OPTIONS] [REPOSITORY[:TAG]]
docker run [OPTIONS] IMAGE[:TAG][COMMAND][ARG...]
開始敲命令
docker images
docker pull hello-world 默認到docker提供的倉庫下載
docker run hello-world
4、Nginx服務
用Docker運行Nginx
Nginx是一個持久運行的容器
Nginx可以選擇前臺掛起&后臺運行
進入容器內(nèi)部
docker images 查看信息
docker pull hub.c.163.com/library/nginx:latest 從網(wǎng)易蜂巢拉取
docker run hub.c.163.com/library/nginx
docker ps 查看運行的容器
docker run -d hub.c.163.com/library/nginx 后臺運行
docker exec -it f4 bash f4是pid根據(jù)docker ps 查看
docker stop pid
Docker網(wǎng)絡
網(wǎng)絡類型:Bridge Host使用宿組機的網(wǎng)絡 None
若選擇Bridge則需要端口映射
docker run -d -p 8080:80 hub.c.163.com/library/nginx 做一個端口映射
docker run -d -P hub.c.163.com/library/nginx 隨機映射
5、Docker化的javaweb
制作自己的鏡像
5.1 寫Dockerfile
先下載tomcat作為基準鏡像
docker pull hub.c.163.com/library/tomcat:latest
from hub.c.163.com/library/tomcat
MAINTAINER fengjiaping xxx@163.com
COPY jpress.war /usr/local/tomcat/webapps
5.2 docker build執(zhí)行Dockerfile
必須在Dockerfile的文件中執(zhí)行
docker build -t jpress:latest .
執(zhí)行后輸出信息
Sending build context to Docker daemon 20.8 MB
Step 1 : FROM hub.c.163.com/library/tomcat
---> 0785a1d16826
Step 2 : MAINTAINER fengjiaping xxx@163.com
---> Running in 253b161090a4
---> 3a3e5d8b63dd
Removing intermediate container 253b161090a4
Step 3 : COPY jpress.war /usr/local/tomcat/webapps
---> 68ca4f225d78
docker run -d -p 8888:8080 jpress
啟動查看是否成功
啟動一個mysql
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Fj93092800 -e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql:latest
docker restart d7 重啟一個docker