Ubuntu 16.04 服务器上配置使用 Docker
Docker基础概念
在使用Docker之前,我们先了解下几个Docker的核心概念
Docker Daemon
Docker引擎,就是运行在后台的一个守护进程,在我们启动它之后,我们就可以通过Docker客户端发送相关Docker的命令。
Docker Images
Docker镜像,这个就类似于我们在安装Windows时的镜像,只不过windows的镜像,在以前我们通常存在光盘上或者U盘里,这里的镜像我们通常会发布到Docker Registry
Docker Containers
Docker容器,在获取到Docker镜像之后,我们可以运行该镜像,此时便会启动一个Docker容器,该容器中运行镜像中的程序。如果把Docker镜像理解为一个类的话,那么Docker容器就是一个实例
Docker Client
Docker客户端,我们安装完Docker之后,我们打开终端使用docker 相关命令进行操作,这些命令便是Docker客户端的命令,另外还有一个基于REST API的Docker客户端,REST API一般用于在开发一些基于Docker运维的系统中使用。
Docker Registry
Docker镜像注册中心,Docker的官网的注册中心为http://hub.docker.com。我们也可以自己搭建自己的注册中心。
以上是Docker的核心概念,下面我们来看如何使用Docker安装Redis、Zookeeper、Mysql,并在过程中,学习使用Docker Client的一些常用命令
安装
centos
yum install docker
systemctl start docker.service
systemctl enable docker.service
ubuntu 16.04
sudo apt-get update
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
sudo apt-get update
apt-cache policy docker-engine
sudo apt-get install docker-ce
sudo apt-get install -y docker-engine
sudo systemctl status docker
官方源
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-commo
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
基本使用
ElasticSearch
docker pull docker.elastic.co/elasticsearch/elasticsearch:5.4.0
docker run -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" docker.elastic.co/elasticsearch/elasticsearch:5.4.0
安装 head 插件(es 5.x)
docker run -p 9100:9100 mobz/elasticsearch-head:5
Redis
查找镜像
使用以下命令在Docker Hub搜索Redis镜像
docker search redis
拉取镜像
docker pull redis:latest
列出所有镜像
docker images
创建并启动容器
docker run -p 6379:6379 -v $PWD/data:/data -d redis:latest redis-server --appendonly yes
执行以上命令,我们就使用redis:latest镜像创建并启动了一个Redis容器,其中
-p 6379:6379:将容器的6379端口映射成主机的6379端口
-v $PWD/data:/data :将主机中当前目录下的data挂载到容器的/data
redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
查看容器
docker ps
连接redis容器
使用Redis镜像使用redis-cli客户端,连接到redis容器
docker run -it redis:latest redis-cli -h 192.168.0.101
Zookeeper
接下来我们安装zookeeper,我们使用和redis相同的方法。直接使用最少的步骤安装,不再做过多解释
查找zookeeper镜像
docker search zookeeper
拉取镜像
docker pull zookeeper
创建并启动容器
docker run -p 2181:2181 -v $PWD/data:/data -d zookeeper:latest
使用zookeeprt镜像创建并启动容器,我们把容器的2181映射到机器的2181上,同样把当前目录的data 挂载到容器的/data
查看当前容器列表
docker ps
列出所有的容器 ID
docker ps -aq
停止所有的容器
docker stop (docker ps -aq)
删除所有的镜像
docker rmi $(docker images -q)
删除所有不使用的镜像
docker image prune --force --all 或 docker image prune -f -a`
删除所有停止的容器
docker container prune -f
REFER:
https://docs.docker.com/engine/installation/
http://www.cnblogs.com/keepcodingforever/p/6698862.html
https://luyiisme.github.io/2017/05/06/elasticsearch-docker-on-one-vm/
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述