centos 安装docker部署项目
docker安装
1.卸载原先版本的docker
如果没有安装过就看下面
sudo yum remove docker docker-common docker-seleniux docker-engine
2.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3.设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4.查看仓库中所有docker版本
yum list docker-ce --showduplicates | sort -r

5.安装docker
最新版本
yum install -y docker-ce
指定版本
yum install docker-ce-3:20.10.6-3.el7
、
6.启动加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
项目部署
1. 创建项目文件夹yl-vpp,子文件夹config,package

2. config文件夹下
vim Dockerfile
编辑内容如下
From java:8
EXPOSE 8081 #端口号
CMD ["sh","-c","data/yl-vpp.sh"]
3. package文件夹下
vim yl-vpp.sh
编辑内容如下
java -jar /data/yl-admin.jar
4. 给文件权限
chmod +x yl-vpp.sh
5. 制作镜像
进入config文件夹,执行命令(注意有个.)
docker build -t vpp-script .
6. 启动容器并进行目录挂载
docker run -d --restart=always --name yl-vppapi -it -v /mnt/publish/api/yl-vpp/package:/data -v /mnt/Logs/yl-vpp:/mnt/Logs/yl-vpp -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -p 8081:8081 vpp-script
此时会报错
docker: Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:75: mounting "/etc/timezone" to rootfs at "/etc/timezone" caused: mount through procfd: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
原因分析:/etc/timezone是一个文件夹,而不是一个文件,执行如下命令
echo 'Asia/Shanghai' > /etc/timezone/timezone
然后执行
docker run -d --restart=always --name yl-vppapi -it -v /mnt/publish/api/yl-vpp/package:/data -v /mnt/Logs/yl-vpp:/mnt/Logs/yl-vpp -v /etc/timezone/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -p 8081:8081 vpp-script
可执行docker ps 查看运行中的容器
docker 命令
- 查看已安装正在运行的容器
docker ps - 查看已安装的所有容器
docker ps -a - 查看已安装的镜像
docker images - 删除容器
docker rm xxx - 删除镜像
docker rmi xxx - 查看版本
docker -v - 重启docker
systemctl restart docker - 启动docker
systemctl start docker - 关闭docker
systemctl stop docker - 开机重启docker
systemctl enable docker - 重启容器
docker restart 容器ID或容器名

浙公网安备 33010602011771号