Docker从入门到项目部署

安装docker

 如果之前安装过需要卸载原有的docker(可选)

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

首先需要大家Linux服务器联网,安装yum工具

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

更新本地镜像源:

# 设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

 输入安装命令(docker-ce为社区免费版本 ):

yum install -y docker-ce

启动docker

 Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议直接关闭防火墙!

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

通过命令启动docker:

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

可以查看docker版本命令:

docker -v

因为使用docker经常会拉取镜像,要配置一个镜像加速器,这里以腾讯云配置镜像加速器为例

1. 打开 /etc/docker/daemon.json 配置文件
命令: cd  /etc/docker/daemon.json
 
2.修改daemon.json文件,配置镜像加速器
命令: vim daemon.json

三步走:
1.按住键盘: "i"  修改文件
2.按住键盘: ":"
3.输入"wq"保存退出


修改后的daemon.json样式
{
   "registry-mirrors": [
       "https://mirror.ccs.tencentyun.com"
  ]
}


重启 Docker 即可
systemctl restart docker

 镜像

 镜像名称:由两部分组成:[repository]:[tag],在没有指定tag时,默认是latest,代表最新版本的   镜像 

查看镜像:docker images

删除镜像:docker rmi mysql:5.7  (删除镜像需要先删除镜像下的容器,或者强制删除,在rmi后面加上 -f, docker rmi -f mysql:5.7)

加载镜像:docker load -i mysql:5.7

保存镜像到磁盘:docker save -o mysql.tar mysql:5.7

拉取镜像:docker pull mysql:5.7  (docker Hub有很多官方的镜像就像Java的maven仓库)

查看镜像详细信息:docker inspect mysql:5.7

 容器

创建一个容器( 创建容器比较重要单独拿出来说)

docker run --name containerName -p 80:80 -d nginx

命令解读:

  • docker run :创建并运行一个容器

  • --name : 给容器起一个名字,比如叫做containerName 

  • -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口

  • -d:后台运行容器

  • nginx:镜像名称,例如mysql:5.7

提醒:容器命令有很多扩展的属性,例如环境 -e,不再一一赘述,学习是一件快乐的事情

查看容器(存活的): docker ps

查看所有容器(不管死活的): docker ps -a

删除容器: docker rm mysql

进入容器:docker exec -it mn bash  【mn:要进入的容器的名称】

启动容器:docker start mysql

暂停容器:docker pause mysql

从暂停状态恢复运行: docker unpause mysql

停止容器:docker stop mysql

查看容器日志:docker logs mysql

 数据卷

导读:

 当你关机了你的Linux或者docker,容器的数据会丢失,最典型的案例就是你把自己的项目发布   到线上,没有做数据卷的操作,如果有一天docker重启了,你就会懵逼的发现你的项目登录账号   密码错误,因为mysql容器挂了数据库连不上,根本拿不到数据

创建数据卷:docker volume create coco    (coco数据卷名称,自定义即可)

查看数据卷详细信息:docker volume inspect coco

列出所有数据卷:docker volume ls

删除指定数据卷:docker volume rm coco

删除所有未使用的数据卷: docker volume prune coco

 案例    创建一个容器挂载数据卷

docker run --name mn  -v html:/root/html -p 8080:8080 -d mysql:5.7


这里的-v就是挂载数据卷的命令:

- `-v html:/root/htm` :把html数据卷挂载到容器内的/root/html这个目录中


注意:
-v后面的映射关系是"宿主机文件/目录:容器里对应的文件/目录",其中,宿主机上的文件/目录是要提前存在的,容器里对应的文件/目录会自动创建。

 自定义镜像

导读:

虽然docker Hub给我们提供了很多镜像,但是自己的是最香,想要个性化的镜像,把自己的项目做成一个镜像发布到外网,享受当站长的快乐!

【 Linux中任意位置创建一个目录,把下面用到的文件丢进去,具体实现下面懒人版Dockerfile有】

 创建一个Dockerfile文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local

# 拷贝jdk8的压缩包和自己java项目打的包 
COPY ./jdk8.tar.gz $JAVA_DIR/         
COPY ./coco.jar /tmp/app.jar

# 安装JDK
RUN cd $JAVA_DIR \
 && tar -xf ./jdk8.tar.gz \
 && mv ./jdk1.8.0_144 ./java8

# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin

# 暴露端口,这里端口跟项目配置文件保持一致 server.port = 8080
EXPOSE 8080  
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

 如果你觉的上面的Dockerfile文件太复杂繁琐,有懒人版的Dockerfile

基于java:8-alpine镜像,将一个Java项目构建为镜像

实现思路如下:

- ① 新建一个空的目录,然后在目录中新建一个文件,命名为Dockerfile

- ② 拷贝自己项目的jar包到这个目录中

- ③ 编写Dockerfile文件:

  - a )基于java:8-alpine作为基础镜像

  - b )将app.jar拷贝到镜像中

  - c )暴露端口

  - d )编写入口ENTRYPOINT

内容如下:

FROM java:8-alpine
COPY ./coco.jar /tmp/app.jar
EXPOSE 8090
ENTRYPOINT java -jar /tmp/app.jar

 Dockefile文件完成了就可以创建镜像了,回退到你创建的目录,输入下面命令:

docker build -t javaweb:1.0 .   【javaweb:1.0自定义即可,后缀.不能省略】


 基于自定义镜像创建容器(镜像名称跟上面保持一直):

docker run --name coco -p 8080:8080 -d javaweb:1.0

 然后就可以在浏览器输入自己的IP地址端口访问项目了,到这里最后一步 部署一个Spring boot项目完成了

 部署一个Spring boot项目

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值