目录
介绍
Docker是一个开源的应用容器
引擎,主要作用是方便我们快速安装部署软件和程序
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上
Docker架构
运行程序----> 运行在容器中----> 镜像创建出来的-----> 镜像仓库下载过来的
仓库(Repository):仓库是集中存放镜像文件的场所
镜像(Image):镜像是用来创建容器的模版,就像是Java中的类和对象一样
容器(Container):容器是从镜像创建的运行实例,它可以被启动、停止、 删除,每个容器都是相互隔离的、保证安全的平台
Docker安装(已完成)
本课程基于CentOS 7安装Docker:
# 1、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 yum install -y yum-utils device-mapper-persistent-data lvm2 # 2、设置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 3、安装docker,出现输入的界面都按 y yum install -y docker-ce # 4、查看docker版本,验证是否验证成功 docker -v # 5、启动docker环境 systemctl start docker # 6、设置开机自启动 systemctl enable docker
默认情况下,将来从docker hub(https://hub.docker.com/)上下载docker镜像,太慢。一般都会配置镜像加速器:
创建或修改
/etc/docker/daemon.json
文件,修改为如下形式:
{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com", "https://hub.uuuadc.top", "https://docker.anyhub.us.kg", "https://dockerhub.jobcher.com", "https://dockerhub.icu", "https://docker.ckyl.me", "https://docker.awsl9527.cn", "https://mirror.baidubce.com" ] }
# 重启docker systemctl restart docker # 查看是否成功 docker info
命令
进程
# 启动服务 systemctl start docker # 停止服务 systemctl stop docker # 重启服务 systemctl restart docker # 查看服务的状态 systemctl status docker # 设置开机自启动 systemctl enable docker
镜像
# 查看本地镜像 docker images # 搜索镜像仓库,推荐:https://hub.docker.com/ docker search 镜像名称 # 下载(拉取)镜像,镜像名称格式为 名称:版本号 docker pull 镜像名称 # 删除镜像(慎重) docker rmi 镜像名称
想要在当前虚拟机运行一个nginx程序
1. 搜索docker仓库中有哪些版本的nginx镜像 2. 从docker的镜像仓库中拉取到nginx 1.18.0的镜像文件 3. 查看本地的镜像 4. 从本地删除nginx的镜像
容器
# 查看本地容器 docker ps # 能查看正在运行 docker ps -a # 能查看所有的容器(运行的和停止的) # 创建一个新的容器并运行(-d 后台运行容器,并返回容器ID -p 主机端口:容器端口 指定映射关系) docker run -d -p 80:80 --name=容器名 镜像名称 # 进入容器内部 docker exec -it 容器名称 /bin/bash # 启动容器 docker start 容器名称 # 停止容器 docker stop 容器名称 # 删除容器 docker rm 容器名称
场景: 使用nginx镜像运行出一个nginx容器(就是一个可以对外提供服务的nginx程序)
如果服务器提示你
说明你的linux服务关闭了请求转发功能, docker容器访问一般是需要做转发的,怎么开启呢?
修改文件vim /usr/lib/sysctl.d/0