1.基本概念、用途、核心思想
docker应用广泛
docker是一个用来装程序及其环境的容器,属于linux容器的封装,提供简单易用的容器使用接口。
解决了环境配置的难题,每台电脑环境都不一样,相比虚拟机,容器体积小启动快相当于轻量化虚拟机。
docker提供了统一的环境,快速拓展,弹性伸缩的云服务,防止其他用户的进程把服务器资源占用过多
docker特点标准化运输方式,存储方式,API接口
2.Docker的组成、架构、重要概念
3.Docker的安装
首先需要Linux操作系统,我使用的是cenOS7
登陆root用户
查看Linux版本
cat /etc/redhat-release
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lSw3UODa-1660628383023)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816120826300.png)]
1) 配置国内yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清理软件源
yum clean all
读取新的软件源
yum makecache
2) 卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
如果yum报告未安装这些软件包,也没问题。
3) 更新yum
yum update
4) 安装所需的软件包
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
5) 使用以下命令来设置稳定的存储库。
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2) 查看docker版本
yum list docker-ce --showduplicates | sort -r
6) 安装指定的版本
yum install docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io
7) Docker 是服务器----客户端架构。命令行运行docker命令的时候,需要本机有 Docker 服务。用下面的命令启动
systemctl start docker
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-riO9jZas-1660628383024)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816121659899.png)]
8) 安装完成后,运行下面的命令,验证是否安装成功。
docker version
或者
docker info
4.第一个Docker容器
1)下载镜像
docker pull [OPTIONS] NAME[:TAG]
OPTIONS:配置
NAME:名字
TAG:版本,默认最新版本
下载hello -world镜像
docker pull hello-world
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F0a0WRDG-1660628383024)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816122446255.png)]
查看本机镜像
docker images
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mHWRhAP0-1660628383025)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816122530900.png)]
2)运行本机镜像
Docker运行镜像命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
运行hello-world镜像
docker run hello-world
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DBp1VslG-1660628383025)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816122815639.png)]
5.nginx的前、后台运行
1)首先去网易云镜像站找niginx镜像地址
https://c.163yun.com/hub#/home
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EB9lKzM5-1660628383026)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816123159671.png)]
docker pull hub.c.163.com/library/nginx:1.13.0
docker run hub.c.163.com/library/nginx:1.13.0
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G7Km23c2-1660628383026)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816123452132.png)]
这样就在前台运行了但是就不能操作当前页面了,按ctrl+c和退出界面可以退出nginx。
可以新开个会话,测试nginx是否运行
docker ps
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LLv3j7z8-1660628383026)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816130641231.png)]
回到启动的会话,按住ctrl+c 退出nginx
以后台方式运行nginx
docker run -d hub.c.163.com/library/nginx:1.13.0
d:参数,分享的意思,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5vR7MPRQ-1660628383026)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816130934494.png)]
进入新开的会话,测试nginx是否运行
docker ps
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z9Zrfzri-1660628383027)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816131049231.png)]
后台运行结束命令
docker stop [CONTAINER ID]
进入容器查看内部
docker exec -it [这里输入CONTAINERID] bash
例:docker exec -it 6268c04d7297 bash
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HQMblLUp-1660628383027)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816131413163.png)]
然后就进入了容器内部,在这里新建文件,不会影响外面。
创建名为1的文件
touch 1
查看nginx存放位置
which nginx
6.Docker网络模式
1)Bridge
先退出nginx
docker stop [CONTAINER ID]
本机端口映射到容器端口
docker run -d -P hub.c.163.com/library/nginx:1.13.0
查看分配的端口
docker ps
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8YjoSioA-1660628383028)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816132321976.png)]
查看端口状态
netstat -na|grep 8080
然后在浏览器访问
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JYHOqeFi-1660628383028)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816132526364.png)]
2)Host
3)None
7.制作自己的Docker容器,dockerfile实战
推广自己的软件,或者把自己的程序打包好给别人运行,都需要制作镜像。
创建dockerfile文件
touch Dockerfile
编辑文件
vim Dockerfile
写入
# 引入基本镜像
FROM alpine:latest
# 作者信息
MAINTAINER imooc
# 执行语句
# 打印hello my dockerfile
CMD echo 'hello my dockerfile'
退出保存,查看文件
cat Dockerfile
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x2YbCfcp-1660628383029)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816133237416.png)]
根据文件,制作镜像
docker bulid -t hello_docker .
"."代表当前路径
制作好后查看本地镜像
docker images
运行镜像
docker run hello_docker
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2rSPfSCp-1660628383029)(C:\Users\YangHaiBo\AppData\Roaming\Typora\typora-user-images\image-20220816133446594.png)]