https://www.docker.com/
Docker is the world's leading software containerization platform
1、什么是Docker
Docker是一个用来装应用的容器,就像杯子用来装水,你可以把Hello World放在Docker,也可以把网站放在Docker中,把任何你想得到程序放在Docker
由Docker公司开源,公布在github上
跨平台,支持Windows、MacOS、Linux
2、理解Docker
2.1 集装箱
2.2 标准化
- 运输方式标准化
- 存储方式标准化
- API接口标准化
2.3 隔离
2.4 Docker解决了什么问题
把操作系统、jdk、tomcat、代码、配置都放到集装箱里,用鲸鱼运送到服务器上,解决了运行环境不一致
让快速扩展弹性伸缩变得简单
3、走进Docker
Docker的作用,去仓库把镜像拉到本地,命令启动变成容器
Build 构建镜像
Ship 运输镜像
Run 运行镜像
3.1 镜像
镜像就是一系列的文件,应用的文件、应用的运行环境的文件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可以选择前台挂起&后台运行
进入容器内部
docker images 查看信息
docker pull hub.c.163.com/library/nginx:latest 从网易蜂巢拉取
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根据docker ps 查看
docker stop pid
Docker网络
网络类型:Bridge Host使用宿组机的网络 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执行Dockerfile
必须在Dockerfile的文件中执行
docker build -t jpress:latest .
执行后输出信息
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
网友评论