写这篇文章之前,不禁让我想到那些年一个人开发部署的日子,有时候部署遇到一个问题比我开发一个需求还要久,真是让人掉头发。
自从认识docker后,少掉了好多头发,两个字:巴适!
废话不多说,直接开始正文!
docker 是什么东西
官网中描述:docker的思想来自于集装箱。
把我的liunx服务器比喻成货船,那我们发布在里面的每个服务就是集装箱,各种各样的货物(服务)被集装箱标准化了,并且互不干扰,这样我们就不用专门区分运送水果和运送化学的货船了。换句话说就是每个服务都有他独立的系统。
Docker的基本组成
客户端和守护进程
Docker是C/S(客户端client-服务器server)架构模式。
docker通过客户端连接守护进程,通过命令向守护进程发出请求,守护进程通过一系列的操作返回结果。
docker客户端可以连接本地或者远程的守护进程。
docker客户端和服务器通过socket或RESTful API进行通信。
docker image – 镜像
可以把镜像比喻成一种进出规则制定,也是容器的核心,相对于容器的源代码,里面记载着容器初始化之前的各种操作和条件
docker Container – 容器
容器比喻是集装箱,根据镜像订制的规则生成后交由docker执行,可以执行一个或者多个进出。
镜像相当于是构建和打包阶段,容器相当于启动和执行阶段。容器可以运行、停止、删除,和其他容器互补干扰。
docker Registry – 仓库
docker用来保存镜像的仓库,有公开和私有,比如热门的镜像docker官网的公有仓库都有提供。当然我们也可以创建自己私有的仓库。
下面开始docker的安装并使用
- centos7系统机器一台(阿里云或者虚拟机均可,保证有网,其他系统的自行了解),我这里ip:0.220
docker的安装
1. 卸载之前的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装必要的依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
3. 设置docker仓库
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
4. 安装docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
5. 启动docker & 设置开机启动
sudo systemctl start docker && sudo systemctl enable docker
6. 配置阿里云镜像加速器
阿里云镜像服务这个地址获取
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["您的加速器地址"]
}
EOF
sudo systemctl daemon-reload
//重启docker
sudo systemctl restart docker
7. docker 常用命令
docker pull 拉取镜像到本地
docker run 根据某个镜像创建容器
-d 让容器在后台运行,其实就是一个进程
--name 给容器指定一个名字
-p 将容器的端口映射到宿主机的端口
docker exec -it <name> /bin/sh 进入到某个容器中并交互式运行
docker image ls 查看所有镜像
dokcer ps -a 查看首页容器
docker stop/start <name> 停止/启动容器
docker rm <name> 删除容器
docker rmi <cid> 删除镜像
docker network create my-net 创建网络my-net
docker network ls 查看网络
docker build -t <image-name> . 生成镜像
docker <network> inspect <my-net> 查看详细信息 网络 容器(docker inspect <name>)
docker rm $(docker container ls -a -q) 批量删除容器,可适用于开始停止
docker rm $(docker container ls -a -q) 批量删除镜像
nginx案例演示
1. 查找镜像
进入docker官网镜像仓库搜索nginx,然后进入第一个(官方认证标识的)
上图红圈位置写明了拉取最新镜像的命令。接下去我们去拉取试试
2. 拉取镜像
执行 docker pull nginx
查询镜像 docker image ls
3. 启动容器
根据上面的docker 命令,我们直接后台启动。由于要外网访问,我们映射一个80端口
docker run -d -p 80:80 nginx
#启动完成查看镜像
docker ps -a
接下来访问,http://192.168.0.220:80
至此就是docker使用的全部内容了,下一节 docker-compose–单机多容器神器
人生自古谁无死,学海无涯苦作舟