docker学习笔记

Docker初步使用


在这里插入图片描述

部署MySql

docker run -d\
    --name mysql\
    -p 3306:3306\
    -e TZ=Asia/Shanghai\
    -e MYSQL_ROOT_PASSWORD=123\
    mysql

命令解读

docker run :创建并运行一个容器,-d是让容器在后台运行
–name mysql:给容器起别名,必须唯一
-p 3306:3306:设置端口映射
-e KEY=VALUE:设置环境变量
mysql:指定运行镜像的名字

在这里插入图片描述

docker基础

在这里插入图片描述

在这里插入图片描述

docker pull nginx  //下载镜像
docker images  //查看
docker save -o nginx.tar nginx:latest //保存镜像
docker rmi nginx:latest //删除镜像
docker load -i nginx.tar //加载镜像
docker run -d --name nginx -p 80:80 nginx //创建并运行镜像
docker stop nginx //停止容器
docker ps -a //查看所有容器
docker start nginx //运行镜像
docker logs nginx //查看日志 持续查看加-f (logs -f name)
docker exec -it nginx bash //进入容器进行操作 exit退出
docker rm nginx -f //删除容器

数据卷

  • 数据卷(volume)是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁

在这里插入图片描述

在这里插入图片描述

docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx //创建数据卷
docker volume ls   //查看数据卷
docker volume inspect html //查看卷的挂载信息

在这里插入图片描述

在这里插入图片描述

docker inspect mysql

在这里插入图片描述

在这里插入图片描述

  • linux文件编辑

vi vim --编辑文件

命令行模式
dd 删除(剪切)光标所在行
3dd 删除(剪切)光标所在行及下面两行
p 粘贴
yy 复制光标所在行
4yy 复制光标所在行及下面三行
G 光标快速定位到最后一行
gg 光标快速定位到第一行
u 撤销上一步操作

插入模式 (按i进入)

最后行模式 (按:进入)
:set nu 显示行号
:5 光标快速定位到第5行
:q 退出
:w 保存
:! 强制执行
:1,$/nologin/888888/g 把第一行到最后一行的nologin替换成888888

docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  -v /root/mysql/data:/var/lib/mysql \
  -v /root/mysql/init:/docker-entrypoint-initdb.d \
  -v /root/mysql/conf:/etc/mysql/conf.d \
mysql

保存后
bash dockerfile运行文件
在这里插入图片描述

自定义镜像

在这里插入图片描述

  • 创建Dockerfile
FROM openjdk:11.0-jre-buster

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

COPY store-0.0.1-SNAPSHOT.jar /app.jar

ENTRYPOINT ["java","-jar","/app.jar"]

在这里插入图片描述

docker build -t mydocer_img .
.代表自动调用当前目录下的Dockerfile

运行
docker run -d --name dd -p 8080:8080 mydocer_img
查看日志
docker logs -f dd

总结

在这里插入图片描述

网络


在这里插入图片描述

  • 加入方式
  1. 创建时候加入–network 网络名
    在这里插入图片描述

  2. 容器已存在加入
    docker network connect mynet mysql
    docker network connect 网络名 容器名

  • 加入自定义网络的容器可以通过容器名互相访问

DockerCompose


docker compose通过一个单独的docker-compose.yml配置文件来管理多个docker容器,帮助我们实现多个相互关联的Docker容器的快速部署。
在这里插入图片描述

在这里插入图片描述

version: "1.0"

services:
  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "./mysql/data:/var/lib/mysql"
      - "./mysql/conf:/etc/mysql/conf.d"
      - "./mysql/init:/docker-entrypoint-initdb.d"
    networks:
      - demoNet
  store:
    build:
      context: ./demo
      dockerfile: Dockerfile
    container_name: store
    ports:
      - "8080:8080"
    networks:
      - demoNet
    depends_on:
      - mysql

networks:
  demoNet:
    name: demo_Net

执行指令创建
docker compose up -d

执行指令删除
docker compose down

后续

容器自启动分为两种情况

一为新建容器时配置自启参数

docker run --restart=always 容器id 或 容器名称

二为已存在的容器配置自启

docker update --restart=always 容器id 或 容器名称

取消容器自启

docker update --restart=no 容器id 或 容器名称

批量设置容器自启

docker update --restart=always $(docker ps -aq)

部署项目服务器时,为了应对停电等情况影响正常web项目的访问,会把Docker容器设置为开机自动启动。
在使用docker run启动容器时,使用–restart参数来设置:
docker run -m 512m –memory-swap 1G -it -p 58080:8080 –restart=always –name bvrfis –volumes-from logdata mytomcat:4.0
–restart具体参数值详细信息:
no - 容器退出时,不重启容器;
on-failure - 只有在非0状态退出时才从新启动容器;
always - 无论退出状态是如何,都重启容器;
如果创建时未指定 –restart=always ,可通过update 命令设置
docker update –restart=always xxx
还可以在使用on - failure策略时,指定Docker将尝试重新启动容器的最大次数。默认情况下,Docker将尝试永远重新启动容器。
sudo docker run –restart=on-failure:10 redis

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值