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
image

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

image

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 命令

  1. 查看已安装正在运行的容器
    docker ps
  2. 查看已安装的所有容器
    docker ps -a
  3. 查看已安装的镜像
    docker images
  4. 删除容器
    docker rm xxx
  5. 删除镜像
    docker rmi xxx
  6. 查看版本
    docker -v
  7. 重启docker
    systemctl restart docker
  8. 启动docker
    systemctl start docker
  9. 关闭docker
    systemctl stop docker
  10. 开机重启docker
    systemctl enable docker
  11. 重启容器
    docker restart 容器ID或容器名
posted @ 2022-04-25 10:42  她与代码皆失  阅读(550)  评论(0编辑  收藏  举报