沈三废

导航

Docker的基础概念简介

1 Docker简介
1.1 什么是虚拟化:
1)在计算机中,虚拟化是一种资源管理技术,是将计算机中各种实体资源如服务器、网络、内存等资源予以抽象、转换后呈现出来,打破实体间不可切割的障碍,使用户可以比原本更好的组态来使用这些资源。
2)虚拟化技术有很多种,软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化、桌面虚拟化、服务虚拟化、虚拟机等。
 
1.2 什么是Docker:
1、Docker 是一个开源的应用容器引擎,基于Go语言并遵从 Apache2.0 协议开源。
2、Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
3、容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
特点:
1)上手快
2)职责的逻辑分类
3)快速高效的开发生命周期
4)面向服务的架构
 
1.3 容器与虚拟机比较:
虚拟层(与本机操作系统没关联)
docker引擎(与本地OS共享)
docker启动速度快,占用体积小
 
1.4 Docker 组件
1.4.1 Docker服务器与客户端(C/S)
docker客户端只需要向docker服务器或者守护进程发出一整套RESTful API
 
1.4.2 Docker镜像与容器
镜像是Docker生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段
镜像:镜像是构建Docker的基石;镜像体积很小,非常便携,易于分享、存储和更新
容器:容器是基于镜像启动起来的,容器中可以运行一个或多个进程
 
1.4.3 Registry(注册中心)
公有(docker hub)、私有
网址:https://hub.docker.com/
 
2 Docker安装与启动
2.1 安装Docker
1、yum包更新到最新
sudo yum update
手动安装
2、安装需要的软件包yum-util 提供yum-config-mamager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils
 
3、设置yum源为阿里云(速度更快)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
4、安装docker(docker-ce社区版免费)
yum -y install docker-ce docker-ce-cli containerd.io
 
5、安装后查看docker版本
docker -v
2.2 设置ustc的镜像
安装完之后这个文件是空的
vim /etc/docker/daemon.json
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
 
shell脚本安装
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh
 
2.3 Docker的启动与停止
启动docker systemctl start docker
查看docker状态 systemctl status docker
重启docker systemctl restart docker
停止docker systemctl stop docker
开机启动docker systemctl enable docker
查看docker信息 docker info
docker帮助 docker --help
 
3 常用命令
3.1 镜像相关命令
镜像文件存放路径:/var/lib/docker/image/overlay2/imagedb/metadata/sha256
 
查看镜像 docker images
REPOSITORY (镜像名称) TAG(镜像标签) IMAGE ID(唯一的镜像ID) CREATED(创建日期) SIZE(镜像大小)
搜索镜像 docker search 镜像名称
NAME(镜像名称) DESCRIPTION(描述) STARS (星) OFFICIAL(是否官方) AUTOMATED(自动构建)
 
拉取镜像 docker pull xxx:tag
删除镜像 docker rmi 镜像ID :tag
删除所有镜像 docker rmi `docker images -q`
修改镜像名称 docker tag nginx:latest newnginx:test
查看镜像信息 docker image inspect python:latest
 
3.2 容器相关命令
3.2.1 查看容器
查看正在运行的容器 docker ps
查看所有容器 docker ps -a
查看最后一次运行的容器 docker ps -l
查看停止的容器 docker ps -f status=exited
CONTAINER ID(容器id) IMAGE(镜像) COMMAND(命令) CREATED STATUS(状态) PORTS NAMES
3.2.2 创建与启动容器
创建容器命令:docker run
交互式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
守护式创建容器
docker run -id --name=容器名称 镜像名称:标签
守护式创建容器后,重新进入容器
docker exec -it 容器名称 /bin/bash
 
-i:表示运行容器
-t:表示容器运行后进入命令行模式【交互式】
-d:后台运行【守护式】
-p:宿主机端口:容器端口映射
-u: root 使用root用户登陆容器去执行命令
-v:挂载数据卷(目录映射)(共享数据)
--name:容器命名
 
/bin/bash: 容器启动后默认执行的命令
exit: 退出容器
 
3.2.3 停止与启动容器
停止容器 docker stop 容器名称(容器ID)
启动容器 docker start 容器名称(容器ID)
3.2.4 文件拷贝
文件拷贝到容器内 docker cp 需要拷贝的文件或目录 容器名称:容器目录
文件从容器拷贝出来 docker cp 容器名称:容器目录 需要拷贝的文件或目录
3.2.5 目录挂载
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机
某个目录的文件从而去影响容器。
docker run -id -v 宿主机目录:容器目录 镜像名称:标签
3.2.6 查着容器IP地址
查看容器运行的各种数据 docker inspect 容器名称(容器ID)
输出容器IP地址 docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
 
3.2.7 删除容器
先停止运行的容器,-f强制删除 docker rm 容器名称(容器ID)
 
3.2.8 查看日志
docker logs 容器名称(容器ID)
 
4 应用部署
4.1 MySQL部署
docker run -id --name=leo_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=xxxxxx mysql:latest
-p:代表端口映射,宿主机映射端口:容器的运行端口
-e:代表添加环境变量MYSQL_ROOT_PASSWORD,是root用户的登录密码
注:新的映射端口,需要在阿里云的安全组规则新加入方向的策略规则
4.2 tomcat部署
拉取镜像 docker pull tomcat:7-jre7
创建容器 docker run -id --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
webapps 文件夹下需要加cas.war包,网上搜索下载一个war包
访问:http://IP:9000/cas,这样一个tomcat就部署好了
4.3 Nginx部署
拉取镜像 docker pull nginx
创建容器 docker run -id --name=mynginx -p 80:80 nginx
 
4.4 Redis部署
拉取镜像 docker pull redis
创建容器 docker run -id --name=myredis -p 6379:6379 redis
 
5 迁移与备份
容器保存为镜像 docker commit 容器名称 镜像名称
镜像备份 docker save -o 文件名.tar 镜像名称
镜像恢复与迁移 docker load -i 文件名.tar
 
6 Dockerfile
6.1 什么是Dockerfile
Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。
 
6.2 常用命令
一、FROM
1、基于哪个基础镜像创建你自己的镜像
2、不区分大小写
3、FROM必须是非注释行的第一行
二、WORKDIR
1、登陆进去容器之后的默认目录
2、目录如果不存在会自动创建
三、ADD
1、将宿主机(容器)的文件添加到镜像指定的目录
四、RUN
1、镜像构建过程中执行的命令
pip3 install -r requirements.txt -i https://pypi.douban.com/simple
五、CMD
1、容器启动之后默认执行的命令
["python3", "main.py"]
6.3 使用脚本创建镜像
构建镜像 docker build -t=镜像名称 .
 
 
 

posted on 2021-12-07 21:26  沈三废  阅读(69)  评论(0编辑  收藏  举报