1、介绍
1.1 docker是什么?(来自于维基百科)
Docker是一种流行的容器化技术,它能够帮助开发人员和运维人员更快、更轻松地部署和管理应用程序。通过使用Docker,您可以将应用程序及其依赖项打包到一个轻量级、可移植的容器中,从而实现快速、可靠的部署。
1.2 相关地址
官方文档:https://docs.docker.com/get-started/overview/
官方镜像库:https://hub.docker.com/search
GitHub地址:https://github.com/docker
1.3 工作原理
在docker中有三个基本的概念:
-
仓库(Repository):仓库可以理解为是一个代码控制中心,里面包含了很多常用的镜像。
-
镜像(Image):镜像是用于创建docker容器的模板,是一种特殊的文件系统,它不仅包含了容器运行所需的程序、库、资源和配置文件,还包含了一些为运行时设置的配置参数。镜像中不包含动态的数据,其内容在构建之后也不会改变。
-
容器(Container):镜像和容器就像是面向对象程序设计中的类与示例一样。镜像是静态的定义,容器是镜像运行起来的实体。容器之间彼此隔离,不会相互影响,一个镜像可以对应多个容器。
1.4 应用场景
-
微服务架构:docker可以让开发者将复杂的应用程序拆分为多个独立的微服务,每个微服务可以运行在一个或多个容器中,实现服务的解耦和可伸缩。docker也可以让运维人员方便地管理和监控这些容器,实现服务的高可用和负载均衡。
-
持续集成和持续交付:docker可以与各种持续集成和持续交付工具集成,实现自动化的构建、测试、发布和部署流程。docker可以保证应用程序在不同的环境中表现一致,降低了部署风险和成本。
-
开发和测试:docker可以让开发者在本地创建和测试应用程序,而无需担心环境差异和依赖冲突。docker也可以让测试人员在不同的容器中运行不同的测试用例,提高测试效率和覆盖率。
2、docker安装
不同版本的Linux系统安装方式不同,各位小伙伴们在安装之前,需要先确定一下系统的版本,下方为查询指令。
lsb_release -a
Distributor: 发行版本的ID
Description:描述信息
Release:具体版本号
Codename:代号
若服务器安装过docker,为保证服务正常使用,再次安装前请先卸载旧版本,重新安装
2.1 Debian 系统安装docker
安装
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
镜像源配置
官方镜像源地址访问比较慢,可以选择国内的镜像地址,下面地址二选一:
// 阿里云
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
// 清华大学
$ sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
2.2 CentOS 系统安装docker
安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
卸载旧版本
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
镜像源配置
// 阿里云
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
$ sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
2.3 Ubuntu 系统安装docker
安装
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh
旧版本卸载
$ sudo apt-get remove docker docker-engine docker.io containerd runc
镜像源配置
1、增加Docker的镜像源配置文件 /etc/docker/daemon.json,如果没有配置过镜像该文件默认是不存的,在其中增加如下内容:
{
"registry-mirrors": ["https://wdyoadwe.mirror.aliyuncs.com"]
}
2、其他镜像源:
Docker 官方中国区:https://registry.docker-cn.com
网易:http://hub-mirror.c.163.com
中国科技大学:https://docker.mirrors.ustc.edu.cn
阿里云:https://wdyoadwe.mirror.aliyuncs.com
3、重启docker服务
service docker restart
4、查看配置是否生效
docker info|grep Mirrors -A 1
3、如何使用
1、通过docker安装nginx
这是使用仓库中的镜像来创建容器供我们使用
访问nginx镜像仓库:https://hub.docker.com/_/nginx?tab=tags
拉取nginx镜像:docker pull nginx
查看镜像是否安装: docker images
运行容器:docker run --name nginx-name -p 8080:80 -d nginx
nginx-name:新启动的容器名称
8080:80:进行端口映射配置。将容器内的80端口映射到本地8080端口
nginx:表示使用哪个镜像进行创建
这时候我们访问本机的8080端口就能看到nginx页面了。
2、通过docker构建镜像
使用docker构建镜像就离不开dockerfile的使用,dockerfile的具体使用请跳转至【docker必备】Dockerfile:让docker构建镜像更加简单
4、一些简单的指令
查看docker镜像:docker images
创建容器,不启动:docker create --name 新创建的容器名 容器依赖的镜像名
创建容器并运行:docker run --name 新创建的容器名 -d 容器依赖的镜像名
查看在运行的容器:docker ps
查看全部的容器:docker ps -a
容器启动/停止/重启:docker start/stop restart 容器ID
删除容器:docker rm 容器ID
删除镜像:docker rmi 镜像ID
Tips:
1、删除容器前需要先停止容器
2、镜像删除前需要删除容器
5、待完善的地方
暂时还未发现,有需要订正的地方欢迎大家留言
6、Q&A
6.1 CentOS:sb_release: command not found
想看linux内核具体是多少的版本,输入lsb_release -a
却出现command not found
。
解决办法: ·yum install -y redhat-lsb
LSB是Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息,可通过yum -y install redhat-lsb命令安装。如果使用该命令时不带参数,则默认加上-v参数。
7、结尾
祝大家docker用的开心,有问题可以在评论区交流探讨。
有能力的同学可以在评论区对小伙伴们的疑问进行解答。
最后感谢开发人员的辛勤付出,让我们有这么优秀的项目可以使用。
8、参考资料
1、51CTO:https://blog.51cto.com/u_12836588/5742767
2、菜鸟教程:https://www.runoob.com/
评论区