Dockerfile和docker-compose使用(多容器依赖互联使用)

Dockerfile和docker-compose使用

linux版本查看

# 系统版本
cat /etc/redhat-release

# 查看内核版本
uname -r

0. docker安装方式1

1. 安装  curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun
2. 查看是否安装成功 docker version (有客户端和服务端说明安装成功)

0. docker安装方式2

yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加阿里云镜像
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install -y docker-ce

#查看docker版本命令
docker version

#启动docker命令
systemctl start docker
#设置开机自启命令
systemctl enable docker

1. Dockerfile

# 基础镜像为python3.8
FROM python:3.8

# 将本机 . 也就是当前目录下所有文件都拷贝到image文件中指定目录
COPY . /usr/src/app/code_pro
# 将/usr/src/app指定为工作目录
WORKDIR /usr/src/app/code_pro

# 在image中安装运行django项目所需要的依赖
RUN pip install -i https://pypi.doubanio.com/simple/ -r requirements.txt --no-cache-dir

# 开放容器的8000端口,允许外部链接这个端口
EXPOSE 8000

# 启动命令   也可以不写 自己进入容器手动启动
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

写好Dockerfile之后

  1. 使用Dockerfile制作镜像docker image build -t code_pro:v1.0.0 .
  2. 使用上面创建好的镜像制作容器docker run -itd --name area_cut -p 8000:8000-v /home/app/logs:/usr/src/app/code_pro/logs code_pro:v1.0.0(自行选择端口映射和文件挂载)
docker run -itd --name pndt1.4 -p 8888:8000-v /root/app/logs:/usr/src/app/intel_networks/logs -v /root/app/dt_resource:/usr/src/app/intel_networks/resource pndt:v1.4
  1. 进入容器docker exec -it area_cut bash

2. docker-compose

docker-compose安装
方法1

先装好docker的情况下安装docker-compose:
github安装 可能有点慢 建议采用下面安装方式

sudo curl -L https://github.com/docker/compose/releases/download/2.8.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
方法2 可以用daocloud下载
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/2.8.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
方法3 管网下载linux二进制执行文件(ELF 64-bit LSB executable, x86-64)

将修改文件名称为docker-compose

mv docker-compose-linux-x86_64-v2.8.0?dkey=89706f9c-4483-4e0e-9edc-9ea00b26fc96 docker-compose

复制docker-compose至/usr/local/bin/

cp docker-compose /usr/local/bin/
最后执行

添加执行权限

sudo chmod +x /usr/local/bin/docker-compose

查看版本

docker-compose version
docker-compose.yml编写

目录结构
在这里插入图片描述

文件内容

version: "3.0"

services:
  area-cut:
    image: "code_pro:v1.0.0"  # 镜像名
    # image: "pro/code_pro:${TAG:-1.0.0}"    格式化输入的话  同级目录建一个.env文件 下面详解
    build:
      context: ./ 
      dockerfile: Dockerfile
    restart: always
    container_name: "container"
    volumes:
      - /home/app/code_pro/logs:/usr/src/app/container/logs # 设置容器时区与宿主机保持一致  ro只读  默认w
#      - /home/app/code_pro/logs:/usr/src/app/container/logs:ro # 设置容器时区与宿主机保持一致  ro只读  默认w
#      - ./logs:/usr/src/app/logs
    ports:
      - 8000:8000
    environment:
      TZ: "Asia/Shanghai"
    depends_on:   # 容器依赖
      - redis
      - mysql

  mysql:
    image: mysql:5.7
    # network_mode: "host" # 如果需要容器使用宿主机IP(内网IP),则可以配置此项
    container_name: code_pro_mysql # 指定容器名称,如果不设置此参数,则由系统自动生成
    restart: always # 设置容器自启模式
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci  # 设置utf8字符集
    environment:
      - TZ=Asia/Shanghai # 设置容器时区与宿主机保持一致
      - MYSQL_ROOT_PASSWORD=123456123456 # 设置root密码
    volumes:
      - /etc/localtime:/etc/localtime:ro # 设置容器时区与宿主机保持一致
      - /data/code_pro/mysql/my.cnf:/etc/mysql/my.cnf
      - /data/code_pro/mysql/data/:/var/lib/mysql
      - /data/code_pro/mysql/conf.d:/etc/mysql/conf.d
    ports:
      - "18053:3306"

  redis:
    image: redis:5.0.14
    container_name: code_pro_redis
    restart: always
    environment:
      TZ: "Asia/Shanghai"
    volumes:
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "18057:6379"

.env文件(动态格式化输入的时候才会用到,直接固定写法就不用了)

TAG=1.2.9

docker-compose常用执行命名

  1. build+启动 相当于上面dockerfile操作的第一步第二步命令docker-compose up -d
  2. 重启容器docker-compose restart
  3. 关闭容器docker-compose down
docker-compose补充

build+启动 --build 强制重新创建镜像(覆盖原来镜像)

docker-compose up -d --build  

3. docker仓库切换源

将docker仓库切换为阿里云
cat > /etc/docker/daemon.json << EOF
{   
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
"registry-mirrors": ["https://registry.docker-cn.com"]  // 中国区官方镜像
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"] // 阿里云镜像
"registry-mirrors": ["https://419bd6w5.mirror.aliyuncs.com"] // 阿里云镜像
    

加载配置文件: systemctl daemon-reload
重启作用:systemctl restart docker  service docker restart
docker info查看源
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

BRYTLEVSON

打赏的都是天使,创作的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值