docker(个人自用)

Docker install

# 移除旧版本的Docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
#最快的删除
sudo yum remove docker*


#安装 yum-utils
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo


# 安装指定的docker版本
# 找到所有可用版本
yum list docker-ce --showduplicates | sort -r

# 指定版本安装
sudo yum install docker-ce-3:23.0.6-1.el7 docker-ce-cli-3:23.0.6-1.el7 containerd.io docker-buildx-plugin docker-compose-plugin


# 安装最新默认版本【我们用这个】
sudo yum install --enablerepo=docker-ce-stable docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin


# 启动docker
sudo systemctl start docker

# 开机启动
systemctl enable docker

set linux network

cd /etc/sysconfig/network-script

BOOTPORTO=dhcp
ONBOOT=NO

#改为
BOOTPORTO=static
ONBOOT=yes

#添加
IPADDR=***.***.***.***
GATEWAY=***.***.***.***
DNS1=114.114.114.114
DNS2=8.8.8.8

#配置完重启网络
service network restart

base operation

#拉镜像
docker pull 镜像名

#镜像操作
docker iamges
docker iamges -a
docker images -aq
docker image ls

#删镜像
docker iamge rm 镜像id/镜像名:tag

#打包镜像
docker image save -o nginx.tar nginx:1.19.10

#加载镜像
docker image load -i nginx.tar

#查看容器
docker ps
docker ps -a

#启动容器
docker run 镜像名:tag

-d 后台运行
--name 命名
--restart 机子重启后是否一并重启,它的前提是docker的开机自启
-p 绑定要暴露的端口,从外往里写
-e 环境变量,要参考hub.docker.com网来写
#删除停止的容器
docker rm
#强制删除容器
docker rm -f

每个容器都是一个linux

#进入容器中
docker exec -it 容器名/id bash

#交互模式
-it 

#用bash模式交互
bash
#容器日志
docker logs 容器名id/name
#挂载
#为了不进容器就可以修改配置的技术
#有两种,都是以-v来配置
#一:外部如果是路径,就是挂载。以外部为准
#二:外部如果不是路径,就是映射。以内部为准

#金标准:配置文件都用映射。其他无所谓,哪个方便用哪个

#绝对路径挂载
docker run -d \
--anme nginx001 \
-p 8888:80 \
-v /opt/ngxhtml:/usr/share/nginx/html \
-v /opt/ngxconf:/etc/nginx \
nginx:1.19.10

#相对路径映射
docker run -d \
--name ngx004 \
-p 9999:80 \
-v ngxhtml:/usr/share/nginx/html \
-v ngxconf:/etc/nginx \
nginx:1.19.10

#挂载的路径是自己指定的,
#映射的路径是docker指定的
#用docker volume inspect 容器名 查询
#一般在  /var/lib/docker/volumes/你的卷名/_data


Docker network

#为使容器间互相访问不绕远路(直接访问,不走linux的ip),并更好维护(用容器名访问)

#配置自定义的网络

#查看网络
docker network ls

#创建网络,默认创建的是桥接模式
docker network create 网卡名

#查看网卡详情,在这个中就可以想看该网卡中的容器所占IP
docker network inspect 网卡名

#同理,在创建容器时可以直接指定容器所归属的网卡
docker run --network 网卡名

Dockerfile

#制作自己的镜像 docker build
#将自己写的程序打包,制作成自己的镜像
#编写Dockerfile文本
#多的参考官方文档


FROM openjdk:21-ea-17-slim
# 标签;随便写一些标签 LABEL <key>=<value> <key>=<value> <key>=<value> ...
LABEL author=about create='2023/12/12'


# 指定端口:EXPOSE <port> [<port>/<protocol>...]
EXPOSE 8080

# 指定环境变量 ENV <key>=<value> ...
# 环境变量在后面动态取出用, -e hello=xxx: 改变原来环境变量的值
ENV hello=world

# ADD 给镜像中添加东西。如果是 网络连接会自动下载来

#COPY [--chown=<user>:<group>] [--chmod=<perms>] <src>... <dest>
#把target目录的jar包复制到 镜像linux系统中的 /opt目录下并叫 app.jar文件
COPY target/*.jar /opt/app.jar

# 即使 docker run -v 不说这个目录挂载,都会自动挂载
#VOLUME ["/data"]
# 只要进入到容器中,容器默认在 /opt 目录下工作。
WORKDIR /opt
# 入口; 别人 docker run 你,你 run 谁
ENTRYPOINT ["java", "-jar", "/opt/app.jar"]

# CMD 可以写很多次
#CMD ["java", "-jar", "/opt/app.jar"]
#CMD ["java", "-jar", "/opt/app.jar"]
#CMD ["java", "-jar", "/opt/app.jar"]
#CMD ["java", "-jar", "/opt/app.jar"]

slim

FROM openjdk:21-ea-17-slim

LABEL author=about1134 create='2023.09.14'

EXPOSE 8888

COPY *.jar /opt/app.jar

WORKDIR /opt

ENTRYPOINT ["java","-jar","/opt/app.jar"]
#制作镜像
docker build -f Dockerfile -t 自定义镜像名 .

Docker compose

#当一个项目需要多个组件(镜像)来提供支持,没有新技术就只能一个一个的去run开启。

#docker compose就是可以一次开启多个镜像的技术
#需要编写对应要求的yaml文件。
#参考官方文档

services:
  javaapp:
    image: javaapp:v1.1
    ports:
      - "8899:8080"
    restart: always



  redis01:
    image: redis:lastest
    ports:
      - "6379:6379"
    volumes:
      - redis-data:/data
      - redis-conf:/etc/redis
    restart: always


volumes:
  redis-data: {}
  redis-conf: {}

services:
  app:
    image: app
    ports:
      - "8888:8888"
    networks:
      - jrTest

  redis003:
    image: redis
    ports:
      - "6379:6379"
    networks:
      - jrTest

networks:
  jrTest:
最佳用法:

1、官方提供 compose.yaml 文件

2、其他人拿到文件。

- `docker compose -f compose.yaml up -d`: 后台启动所有应用
- `docker compose -f compose.yaml down`: 停止删除所有容器
- `docker compose -f compose.yaml stop:` 停止所有容器
- `docker compose -f compose.yaml start:` 启动所有容器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值