一、什么是docker容器
容器(Container)是基于镜像创建的运行实例,一个容器中可以运行一个或多个应用程序(jdk+开发的java应用 程序)。
Docker 可以帮助你构建和部署容器,你只需要把自己的应用程序或者服务打包放进容器即可。
我们可以认为,镜像是Docker生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。 可以理解容器中有包含:一个精简版的Linux环境 + 要运行的应用程序
二、为什么要容器化
- Build once,Run anywhere(构建一次,到处运行):
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。 - 可以进行快速的扩容。
三、Docker 容器架构
Docker客户端向Docker服务器发出请求,使用远程API来管理和创建Docker容器:
- 镜像(Image):镜像是Docker中的一个模板。通过 Docker镜像 来创建 Docker容器,一个镜像可以创建出多个容器。 镜像是由一系列指令一步一步构建出来
- 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
- 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
四、docker安装启动
Docker 支持CentOS 7及更高版本的 64 位 CentOS 版本。如果之前已经安装过docker,可以使用以下命令卸载:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1、安装 yum-utils 程序,命令yum install -y yum-utils:
sudo yum install -y yum-utils
2、设置docker镜像仓库,官方仓库比较慢,建议使用阿里镜像仓库:
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安装docker-ce,社区免费版:
sudo yum install docker-ce docker-ce-cli containerd.io
看到上面内容代表docker已经安装成功了。
4、启动docker:
先关闭防火墙,避免docker端口被防火墙拦截:
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
启动docker:
sudo systemctl start docker
5、测试hello world:
#验证 docker 是否安装成功并在容器中执行一个测试的镜像
sudo docker run hello-world
五、拉取镜像示例
1、拉取mysql镜像
#要下载指定版本在mysql后面跟:版本号, 不加版本号表示默认下载的最新版本
docker pull mysql:5.7
2、查看是否已安装好mysql镜像:
docker images
3、启动mysql:
docker run -id --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
- -id 创建启动并在后台运行程序
- -it 创建启动并进入容器
- -p 端口映射 宿主机端口:容器端口
- -e 代表添加环境变量
4、进入容器并访问 MySQL 服务
#进入容器内部
docker exec -it mysql /bin/bash
#进入mysql
mysql -h localhost -u root -p
#使用mysql
use mysql
六、docker常用命令汇总
# 搜索镜像
1.docker search 镜像名称
# 列出docker下的已安装所有镜像
2.docker images
# 拉取镜像
3. docker pull 镜像名:标签名
# 删除镜像
4.docker rmi 镜像id
# 查看正在运行的容器
5.docker ps
# 查看所有容器
6.docker ps -a
# 通过镜像创建容器
7.docker run 镜像名:标签名
# 进入容器
8.docker exec -it 容器名称|容器id /bin/bash
exit:退出容器不停止容器
# 启动容器
9.docker start 容器名称|容器id1
# 停止容器
10.docker stop 容器名称|容器id1
# 删除容器
11.docker rm 容器名称|容器id
==============================================================================
以上就是本次的全部内容,都看到这里了,如果对你有帮助,麻烦点个赞+收藏+关注,一键三连啦~
欢迎下方关注我的公众号:程序员杨叔,各类文章都会第一时间在上面发布,持续分享全栈测试知识干货,你的支持就是作者更新最大的动力~