传统虚拟化

docker

  1. 安装
    CentOS 安装docker engine

清华yum源 安装docker engine

  • 启动docker systemctl enable --now docker
  • 检查 docker version
  1. docker镜像加速
    阿里云获取个人加速地址

  2. docker运行nginx服务

    1
    2
    3
    4
    5
    6
    7
    docker run
    -d 后台运行
    -p 端口映射
    -e 传参
    -v 挂载
    --name 指定名称
    --restart==always docker启动后容器启动

查看镜像
docker images
本地有就启动本地镜像,没有就从远程仓库下载

  • 最新版nginx
    docker run -d -p 80:80 nginx:latest
  • 指定版本
    docker run -d -p 80:80 nginx:1.24

查看容器
docker ps 运行中的容器
docker ps -a 可以看到出错或未运行的容器

数据包转发:
echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf

sysctl -p

  1. docker镜像自定义

  2. 选择基础镜像
    docker run -d -p 80:80 --anian_v1 nginx:1.24

  3. 连接容器
    docker exec -it anian_v1 /bin/bash

  4. 上传源码
    docker cp anian.html anian_v1:/usr/share/nginx/html/

  5. 生成镜像
    docker commit anian_v1 anian:html_anian_v1

  6. 检查
    docker imagers | grep html

  7. 数据持久化

    1
    2
    3
    mysql数据
    宿主机:/server/data/mysql/
    容器:/var/lib/mysql/
  8. mysql容器
    docker run -d -p 3306:3306 --name mysql --restart==always -e MYSQL_ROOT_PASSWORD=1 \
    -v /server/data/mysql : /var/lib/mysql/ mysql:8.0-debian

  9. 查看宿主机文件
    ls /server/data/mysql

  10. 连接mysql容器
    docker exec -it mysql mysql -uroot -p1

  11. 创建库
    create database anian

  12. 删除mysql容器
    docker rm -f mysql

  13. 重新创建容器并查看库
    docker run -d -p 3306:3306 --name mysql --restart==always -e MYSQL_ROOT_PASSWORD=1 \
    -v /server/data/mysql : /var/lib/mysql/ mysql:8.0-debian

docker exec -it mysql mysql -uroot -p1

show database

  1. 自动化脚本编写
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    |Dockerfile|含义|
    |----|----|
    |Dockerfile开头部分|
    |FORM|指定基本镜像类似pull下载镜像|
    |LABEL|指定容器属性|
    |MAINTAINER|创建Dockerfile使用的变量|
    |Dockerfile中间部分|
    |RUN|系统配置,服务配置,部署,不能出现终端阻塞|
    |ADD|指定文件或者目录拷贝到容器,自解压tar包|
    |COPY|指定文件或者目录拷贝到容器,不解压
    |WORKDIR|指定容器默认工作目录|
    |VOLUME|挂载数据卷|
    |Dockerfile结尾部分|
    |EXPOSE|指定镜像对外暴露端口,端口映射|
    |CMD|指定容器入口命令 CMD ["命令","参数01","参数02"]|
    |ENTRYPOINT|指定容器入口命令 ENTRYPOINT ["命令","参数01","参数02"]|

创建Dockerfile后,在当前目录构建镜像
docker build . -t 'nginx:1.24-debian'

  1. 总结
    1
    2
    3
    4
    5
    |docker镜像|指令|
    |----|----|
    |查看|docker images|
    |下载|docker pull|
    |删除|docker rmi|
1
2
3
4
5
6
7
8
9
|docker容器|指令|参数|
|----|----|----|
|启动容器|docker run|-d -p -e -v --name --restart|
|查看容器|docker ps|-a -q|
|删除容器|docker rm|-f|
|连接容器|docker exec|-it|
|传输内容到容器|docker cp|----|
|容器->镜像|docker commit|----|
|开、关、重启、暂停、取消暂停|docker start/stop/restart/pause/unpause|----|