镜像:CentOS 7.9 64位
CPU & 内存:2核2G
系统盘:60GB
峰值带宽:30Mbps
流量包:600GB / 600GB
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
使用以下命令来设置稳定的仓库。
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker Engine-Community
$ sudo yum install docker-ce docker-ce-cli containerd.io
启动 Docker
$ sudo systemctl start docker
通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
$ sudo docker run hello-world
需求:基于docker创建在ubuntu18.04系统上运行Flask网站
流程:
docker search ubuntu
docker pull ubuntu:18.04
docker images
#关Dockerfile
# Base images 基础镜像
FROM ubuntu:18.04
#MAINTAINER 维护者信息
maintainer [email protected]
#RUN 执行以下命令
RUN apt update
RUN apt install python3 python3-pip -y
RUN pip3 install flask
RUN mkdir -p /data/www
#拷贝文件至工作目录
COPY app.py /data/www/app.py
#工作目录
WORKDIR /data/www/
#EXPOSE映射端口
EXPOSE 80
#容器启动时执行命令
CMD ["python3","app.py"]
app.py
from flask import Flask
app = Flask(__name__)
@app.route("/index")
def index():
return "欢迎光临红浪漫"
if __name__ =="__main__":
app.run(host="0.0.0.0",port=8000)
命令构建自定义镜像(模板)
docker build -t wupeiqi/web1:1.0 . -f Dockerfile
基于镜像创建容器+运行
docker run -p 80:8000 -d --name v123 wupeiqi/web1:1.0
-p 表示外部端口80访问内部端口8000, -d表示后台运行
docker ps -a 列出所有创建的容器
docker ps 列出所有运行的容器
docker stop xx1 xx2 停止正在运行的容器,xx1可以是容器id也可以是name
docker rm xx1 xx2 删除容器
docker rm $(docker ps -qa)
原始视频链接 https://www.bilibili.com/video/BV1wQ4y1Y7SE?p=16&spm_id_from=pageDriver&vd_source=7ac19d5113271a9a076e045912769b5e
下载mysql8.x
docker pull mysql:8.0.22
1启动mysql 开放端口映射(3306),使用-e设置root用户密码,后台运行-d,指定名称–name,总是运行
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d --name mysql01 --restart=always mysql:8.0.22
-v /root/data:/var/lib/mysql
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d --name mysql01 --restart=always -v /root/data:/var/lib/mysql mysql:8.0.22
docker pull redis:5.0.12
docker run -p 6379:6379 -d redis:5.0.12
docker exec -it 70e bash
启动redis 映射端口(6379) 后台启动-d 指定名称–name 总是启动 --restart=always
docker run -p 6379:6379 -d --name redis01 --restart=always redis:5.0.12
redis支持内存数据持久化:
1.rdb持久化: 快照 Redis服务器将某一时刻数据以快照文件形式写入到磁盘
2.aof持久化: redis服务器将所有redis客户端的写操作以命今方式记录到日志文件中 AOF更加安全 everysec
3.docker 启动redis 映射端口(6379) 后台启动-d 指定名–ame 总是启动 --restart=alnays 运行redis如何开启持久化
注意: 只要开启了持久化,将持久化文件生成容器中/data/目录中
docker run --name redis01 -d -p 6379:6379 --restart=always redis:5.0.12 redis-server --appendonly yes
4.docker启动redis 开放口 后台启动 指定名 总是启动 开启持化 映射数据文件外部
docker run --name redis01 -d -p 6379:6379 --restart=always -v /root/redisdata:/data redis:5.0.12 redis-server --appendonly yes
https://www.jianshu.com/p/f2c6ad35fbb0
sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
#启动项目
docker-compose
【-f docker-compose.yml的路径】
【-d 】(后台启动)
up
#关闭用docker-compose启动的所有容器
docker-compose
【-f docker-compose.yml的路径】
down
docker-compose文件模板
#docker-compose的版本
version: "3.8"
#一组容器
services:
#容器(自定义),默认生成的容器名为:项目名(docker-compose.yml所在目录的目录名)_容器_序号。
container1:
#镜像
image: image1
#通过Dockerfile构建镜像然后运行
build: /dir/of/Dockerfile
#容器名
container_name: container-name
#端口映射(可多个) 宿主主机端口:容器端口
ports:
- 80:80
#数据卷(可多个) 宿主主机文件(必须已存在):容器文件
volumes:
- /path/in/host:/path/in/container
#环境变量(可多个)
environment:
- var=value
#覆盖容器启动时执行的命令
command: new-command
#先启动这些,再启动本身.
depends_on:
- 服务1