本文介绍了 Docker 的主要用途、在 Linux 中安装 Docker 环境的步骤并总结了 Docker 镜像、容器的常用命令。最后给出了使用 Docker 搭建 MySQL 环境的案例。
本文前置知识
- Linux 基础命令,如目录切换,文件查看,VIM 等。
为什么要学 Docker ?
传统发布项目一般采用的是 jar/war 包的形式,部署时需要处理环境相关问题,还可能会遇到端口冲突等问题。引入 Docker 就是为了解决这些不足,其主要优点如下:
- 采用 Docker,在项目打包时能够将运行环境也打包,项目部署维护更为方便。
- Docker 打包应用,可以做到彼此相互隔离,无需担心端口冲突问题。
- 借助 Docker,搭建环境时可以省略一些繁琐的步骤,直接从仓库拉取即用。
- 相比于虚拟机技术,Docker 容器技术占用内存十分小,能够充分利用服务器资源。
Docker 相关网址:
- 官网:https://www.docker.com/
- 文档:https://docs.docker.com/
- 仓库(类似于 github):https://hub.docker.com/
- Docker 命令文档:https://docs.docker.com/engine/reference/commandline/cli/
Docker 安装步骤:
1、卸载旧版本 Docker:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安装必要的环境:
yum install -y yum-utils
3、设置镜像的仓库,这里采用阿里云 Docker 镜像地址进行加速。
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、更新 yum 软件包索引:
yum makecache fast
5、安装 Docker 引擎:
yum install docker-ce docker-ce-cli containerd.io
6、启动 Docker:
systemctl start docker
7、查看 Docker 信息,判断是否启动成功:
docker version
8、测试 Hello World:
docker run hello-world
9、查看 Docker 下载的镜像:
docker images
10、配置阿里云镜像加速:
进入阿里云,弹性计算,容器镜像服务。
在镜像工具下层的镜像加速器中,选择对应系统(如 CentOS),找到镜像加速地址。每个服务器有自己的私有镜像地址。
在 Linux 中,将四条命令逐一执行。
配置完成以后安装东西就非常快了。安装完 Docker 后,接下来要熟悉 Docker 镜像、容器的常用命令。
Docker 常用命令:
查找镜像:
docker search 镜像名
拉取镜像,可指定版本,不写 tag,默认下载最新版:
docker pull 镜像名[:tag]
查看当前下载的镜像:
docker images
删除指定镜像:
docker rmi -f 镜像id(多个用空格隔开)
删除所有镜像:
docker rmi -f $(docker images -aq)
新建容器,运行容器(这里仅列出常用的可选参数,-d 后台运行,-p 端口映射,-v 目录挂载,-e 环境参数,–name 指定名字):
docker run -d 镜像名 -p 主机端口:容器端口 -v 主机目录:容器目录 -e 环境参数
查看正在运行的容器(可选参数 -a 能够同时列出曾经运行的容器):
docker ps
进入到正在运行的容器,相当于在容器中开启一个新的终端,十分常用:
docker exec -it 容器id /bin/bash
进入容器当前运行的进程:
docker attach 容器id
从容器拷贝文件到主机上:
docker cp 容器id:容器内路径 目的主机路径
关闭容器:
docker stop 容器id
退出容器(容器不停止退出,即后台运行):
ctrl + p + q
退出容器(退出关闭):
docker exit
删除指定容器:
docker rm -f 容器id
删除全部容器:
docker rm -f $(docker ps -aq)
Docker 主要用法:
- 搭建环境:查找镜像 -> 拉取镜像 -> 容器运行
- 项目打包:编写 DockerFile
Docker 实战:搭建 MySQL 环境
1、查找 MySQL 镜像:
docker search mysql
2、拉取 MySQL 镜像:
docker pull mysql:5.7
3、新建容器并运行,同时挂载到 Linux 本地:
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
4、本地连接容器中的 MySQL,主机为服务器公网 ip,密码为上方配置的 123456,端口为上方配置的 3310。注意:阿里云防火墙、Linux 端口都要开放,才可访问。
服务器的 3310 端口将会映射到容器的 3306 端口,连接成功。
总结
- Docker 解决了传统项目打包部署存在的缺点,同时给我们搭建环境带了极大的方便。
- 此外,通过 DockerFile 能够将项目以及环境一键打包部署,只需构建镜像、创建容器即可运行项目。
- 综上所述,Docker 是一门很有必要学习的技术。