docker实践进行时..

最近在使用docker部署springboot时候用到了挺多指令,为了以后温故而知新,故记录一下我目前工作中用到过的指令:

//通过dockerfile文件、应用程序jar包制作镜像,注意 最后一个字符 “  .  ” 

docker build -t checkorder:v1.0.0 .

dockerfile文件内容描述示例:

//基础镜像

FROM java:8

//作者

MAINTAINER  maintainer="***<***@***.com>"

//声明运行环境

ENV ACTIVE_PROFILE=test

//springboot项目内嵌的tomcat,儿tomcat运行默认目录是tmp下的jar

VOLUME /tmp

//应用程序的jar依赖

ADD yuance-fcc-checkorder.jar yuance-fcc-checkorder.jar

//暴露出去的端口号

EXPOSE 8992

//执行脚本

ENTRYPOINT ["/bin/bash", "-c", "java -server -jar -Dfile.encoding=utf-8 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Dspring.profiles.active=$ACTIVE_PROFILE /yuance-fcc-checkorder.jar"]
 

//查看所有镜像

docker images

//运行指定镜像

示例:

docker run -d -p 8992:8992 checkorder-fcc-server:v1 //docker默认ip

docker run -p 8992:8992 -d --net="host" checkorder:v1.0.0 //绑定宿主机ip

//删除指定镜像

docker rmi 【IMAGE ID】

//查看目前运行中的容器

docker ps

//所有的容器,包括未运行

docker ps -a

//进入指定id的容器中(可以理解为一个独立的centos虚拟机)

docker exec -it 【CONTAINER ID】 /bin/bash

//删除指定容器

docker rm 【CONTAINER ID】

//查看docker磁盘占用

 docker system df

//查看docker磁盘占用详细信息

docker system df -v
//自动清理docker磁盘空间

docker system prune

//查看所有docker容器查看自动分配的IP地址

docker inspect -f='{{.Name}} {{.NetworkSettings.IPAddress}} {{.HostConfig.PortBindings}}' $(docker ps -aq)

nacos 镜像启动示例:

docker run --name nacos -d -p 8848:8848 --privileged=true --restart=always -e JVM_XMS=512m -e JVM_XMX=2048m -e MODE=standalone -e PREFER_HOST_MODE=hostname -v /home/nacos/logs:/home/nacos/logs  nacos/nacos-server:1.2.0
 

启动后台名为 etc-user.jar,用容器的8080端口监听宿主机8080端口,将容器外mydockerdata数据卷挂载在容器mydockerdata目录中,(:ro -只读的意思,即容器中不可修改卷的内容,只能宿主机修改同步到容器。jdk:1.8是我要运行的镜像)

docker run -itd -p 8080:8080 --name etc-user.jar -v /mydockerdata:/containerVolume:ro jdk:1.8

Swarm一起使用Compose:

compose的安装治理:

//指定tag版本下载到指定目录下

curl -L "https://github.com/docker/compose/releases/tag/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

//设置可执行权限

chmod +x /usr/local/bin/docker-compose
//添加到环境中 ln -s : 软链接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
//测试安装
docker-compose --version
//卸载docker-compose
rm /usr/local/bin/docker-compose
swarm集群指令:
//创建swarm集群
[root@wdm11] docker swarm init --advertise-addr 192.168.162.11
//查看节点信息
$ docker node ls
//在工作节点 192.168.162.12上安装docker和docker swarm 然后执行如下命令作为工作节点加入到swarm集群中
[root@wdm12]# docker swarm join --token SWMTKN-1-
60etl768pzoibxuqlpeuyyp73jjwwknbc2yvlfxpzwc568vr8o-e7y60md3jxd8u4mkxzug13xeb
192.168.162.11:2377
//在管理者所在服务器执行如下命令,获取管理节点token
[root@wdm11] docker swarm join-token manager
//在管理者所在服务器执行如下命令,获取工作节点的token
[root@wdm11]  docker swarm join-token worker
//swarm集群运行
docker stack deploy -c docker-compose.yml 【服务的名称】
//查看服务
docker stack services 【服务的名称】
//删除服务
docker stack down 【服务的名称】
//docker-compose.yml案例
version: "3.0" 
services: 
  nginx: 
    image: nginx:1.18.0 
    environment: 
      - TZ=Asia/beijing 
    ports: 
      - 80:80 
      - 443:443
    deploy: 
      mode: replicated 
      replicas: 2
  mysql: 
    image: mysql:5.7.30 
    ports: 
      - 13306:3306 
    command: 
      --default-authentication-plugin=mysql_native_password 
      --character-set-server=utf8mb4 
      --collation-server=utf8mb4_general_ci 
      --explicit_defaults_for_timestamp=true 
      --lower_case_table_names=1 
      --default-time-zone=+8:00 
    environment: 
      MYSQL_ROOT_PASSWORD: "root" 
    deploy:
      mode: replicated
      replicas: 2
  redis: 
    image: redis:5.0.9 
    environment: 
      - TZ=Asia/beijing 
    ports: 
      - 6379:6379
    deploy:
      mode: replicated
      replicas: 2
  hot: 
    image: hot:1.0
    ports: 
      - 8992:8992 
    deploy: 
      mode: replicated 
      replicas: 2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诚信赢天下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值