docker
docker的使用场景
1、web应用的自动化打包和发布
2、自动化测试和持续集成、持续发布
3、在服务型环境中部署和调整数据库或其他的后台应用
4、从头编译或者扩展现有的平台来搭建自己的服务器环境
5、面向服务架构(微服务架构)
docker的优点:
1、快速、一致地交付应用程序
2、响应式部署和扩展
3、在同一硬件上运行更多工作负载
1、docker是一个C/S架构的程序
2、镜像与容器:镜像是用来运行容器的一组文件
镜像运行起来就是一个容器
镜像是容器的模板
一个镜像运行多次就会产生多个容器
理解:镜像相当于一个类,容器相当于类实例化之后的一个对象
3、注册中心(用来获取镜像)
类似于git的一个平台
https://hub.docker.com
常用命令
一、docker的启动与停止
1、启动
systemctl start docker
2、停止
systemctl stop docker
3、重启
systemctl restart docker
4、查看docker服务状态
systemctl status docker
5、查看docker信息
docker info
6、查看帮助文档
docker --help
二、镜像命令
1、查看镜像(本地镜像)
docker images
2、搜索镜像(优化在本地搜,本地没有再去已设置的注册中心搜)
docker search 镜像名称
3、下载镜像到本地
docker pull 镜像名称
注:如果不指定版本的话,则默认下载的latest版本的镜像
4、镜像文件存放的路径
5、修改镜像名称(会重新生成一个已修改名称的镜像)
docker tag 镜像名称:标签 新的镜像名称:标签
例:docker tag nginx:latest newnginx:test
6、删除镜像
docker rmi 镜像名称:标签
例:docker rmi newnginx:test
7、查看镜像信息
docker image inspect 镜像名称:标签
例:docker image inspect python:latest
三、容器命令
1、查看所有容器
docker ps -a
2、查看运行中的容器
docker ps
3、创建容器(交互式)
docker run -it --name=mypy python:latest /bin/bash
参数:
-i:表示运行容器
-t:表示容器运行后进入命令行模式
-d:后台运行
-p:宿主机端口:容器端口
-u:root 使用root用户登录容器去执行命令
-v:挂载数据卷即目录映射(共享数据)
--name:给需要创建的容器起一个名称
python:latest:需要创建的容器的基础镜像
/bin/bash:代表容器启动后默认执行的命令
exit退出后容器也会停止
4、守护式创建容器
docker run -di --name=容器名称 python:latest
5、进入守护式容器
docker exec -it 容器名称 /bin/bash
6、退出容器(退出容器后容器随即停止运行)
exit
7、删除容器
已停止运行的容器可以直接删除
docker rm 容器名称
正在运行中的容器不能直接删除,如直接删除需使用以下命令(强制删除)
docker rm -f 容器名称
8、启动已存在的容器
docker start 容器名称
9、停止容器
docker stop 容器名称
docker kill 容器名称
10、查看容器的信息
docker inspect 容器名称
11、查看日志
docker logs 容器名称
12、容器的拷贝
docker cp 文件/目录 容器名称:容器的目录
docker cp 容器名称:容器文件/目录 宿主机目录
四、docker实战
首先是dockerfile的指令:
1、FROM
from后面跟的是:基于哪个镜像创建你自己的镜像
FORM不区分大小写,建议关键字统一大写,便于区分
FORM必须是非注释行的第一行
2、WORKDIR
workdir后面跟的是:登录容器之后的默认目录
目录如果不存在会自动创建
3、ADD
add后面跟的是:将宿主机或者容器的文件添加到镜像指定的目录
4、RUN
run后面跟的是:镜像构建过程中执行的命令(在容器里面执行)
5、CMD
cmd后面跟的是:容器启动之后默认执行的命令
实战:
1、创建并启动jenkins
docker run -d -p 7000:8080 --name myjenkins -u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:alpine
1.1、创建完成后,在浏览器用ip+端口的方式打开jenkins
1.2、打开提示要输入密码,可通过页面给出的路径查找,也可以通过在log中查看(docker logs myjenkins)
1.3、输入用户名和密码
1.4、安装配置文件,因为我们是在服务器上安装,所以点第一个推荐即可(在本地安装的话,点推荐安装容易卡死)
1.5、实例配置
2、把代码拉下来
2.1、创建镜像dockerfile(用于安装pyhton程序执行需要的依赖包:requests、ddt等等,把代码放到python里面执行)
2.2、创建一个python容器
2.3、执行脚本
3、放到python容器里面执行
4、dockerfile