1. 概念:
实现项目的部署。 装之前,我们首先确保自己的linux系统内核版本高于3.10,并且系统是64位,才能体验Docker哦。
镜像(image) node,mongodb,tomcat 一个安装软件就代表一个镜像 class
容器 在软件上运行的程序就是容器-->正在运行的程序就是容器 实例
仓库 (集中放置镜像的地方) Docker hub
1-1. 测试服务器版本
uname -ir
2. 安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun //阿里云安装
2-1. 是否安装成功
docker -v //查看docker的版本号
2-2. 安装阿里云镜像
使用docker安装软件
//重建docker文件夹
sudo mkdir -p /etc/docker
//生成json文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://vjd3mwdv.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker info //查看docker的详情信息
3. nginx镜像
docker pull nginx //最新版本
docker pull nginx:1.8 //安装1.8,不覆盖
3-1. 查看docker镜像
docker images
3-2. 删除docker镜像
//docker rmi [镜像名:tag|id]
docker rmi nginx:1.8 //rmi:remove images,删除nginx1.8 镜像
docker rmi f6d //id删除
docker images
启动一个容器
运行在镜像上的程序(应用)
//就是运行在镜像上的程序(应用)
//docker run [镜像名:tag|id]
docker run nginx
4. 将80端口项主机暴露
docher ps //正在运行的容器
docher ps -a //所有存在的容器
4-1. 删除容器
docker ps -a
4-2. 启动在后台运行的容器
容器和容器相互隔离,都在80端口
docker run -d nginx
docker ps
4-3. 端口向主机暴露
4-3-1. 停止容器
docker stop 180(id)
4-3-2. 创建项外暴露的容器
docker run -d -p 8080:80 nginx //主机端口:容器端口
docker run -d -p 8081:80 nginx //主机端口:容器端口
//容器一个端口可以启动多个
代码,环境一起打包成镜像
# 引入Node
FROM node:latest
# 在容器内创建工作目录
RUN mkdir -p /app
# 指定容器工作目录
WORKDIR /app
#将当前目录下的所有文件,都拷贝进入 image 文件的/app目录。
COPY . /app
RUN npm install --registry=https://registry.npm.taobao.org
RUN npm install pm2 -g --registry=https://registry.npm.taobao.org
#对外暴露的端口
EXPOSE 8080
#程序启动脚本
CMD ["pm2-runtime", "app.js"]
4-3-3. Linux上构建镜像
在Dockerfile同级路径下执行如下命令构建镜像
docker build -t myapp .
4-3-4. 启动容器
docker run -d -p 8082:8080 --name myapp myapp //主机端口:容器端口
4-3-5. 导出镜像
docker save -o myapp.tar myapp
4-3-6. 导入镜像
docker load -i myapp.tar