做为半吊子python开发人员,直到现在才展开Docker之旅可以说是深表惭愧了····闲话不多说,直接上操作~~
一、安装Docker
安装环境:
系统:CentOS Linux7 x86_64
安装脚本
wget -qO- https://get.docker.com/ | sh
回车后系统就开始安装docker
安装完成后可以通过以下脚本查看安装结果
docker --version
通过上面的脚本可以查看当前docker的版本,若出现版本信息则说明安装成功
docker system info
执行上面脚本如果出现“Cannot connect to the Docker daemon at”错误,说明Docker服务还未启动(刚安装完,当然没有启动····),只需要通过下面的脚本启动一下便可
service docker start
二、添加用户到Docker组中
usermod -aG docker 用户名
添加后此用户才可以使用Docker,可以通过以下脚本查看可以使用Docker的用户
cat /etc/group | grep docker
三、安装Docker-Compose
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
因linux服务器上默认都是由pip安装工具的,所以直接通过pip进行安装
pip3 install docker-compose
安装途中出现了“ModuleNotFoundError: No module named 'setuptools_rust'”错误,只需要安装一下setuptools便可
pip3 install -U pip setuptools
解决上面的问题后重新安装了一下,等安装完成可以通过以下脚本确认安装结果
docker-compose version
在另一台服务器用root用户安装后普通用户出现了docker-compose命令不存在的问题,经过研究出现这种问题是因为普通用户无法通过默认的系统环境变量访问到python3的环境,仅需要在/etc/profile文件中添加一下python3的环境目录便可
export PATH=$PATH:/usr/local/python3/bin
四、顺便安装下git以便从git上直接拉取项目进行部署
yum -y install git
安装完成可以通过以下脚本确认安装结果
git --version
五、Docker常用命令
1.查看docker版本
docker --version
2.列出当前容器
docker ps # 列出当前运行的容器
docker ps -a # 列出所有容器
docker ps -q # 列出容器id
docker ps -s # 增加容器大小列
3.显示容器日志
docker logs --details 容器id # 显示容器的详细日志
docker logs -f 容器id # 在当前控制台实时输出容器的日志
docker logs -t 容器id # 显示容器的详细日志并附带每条日志的时间
4.显示容器当前资源使用状态
docker stats # 显示当前正在运行的容器的资源使用状态
docker stats -a # 显示所有容器的资源使用状态
5.容器控制
docker start 容器Name1 容器Name2 # 启动一个或多个容器,多个容器名称之间用空格间隔
docker stop 容器Name1 容器Name2 #停止一个或多个容器,多个容器名称之间用空格间隔
docker restart 容器Name1 容器Name2 # 重启一个或多个容器,多个容器名称之间用空格间隔
6.列出容器镜像
docker images # 列出镜像
docker images -a # 列出所有镜像
docker images -q # 列出镜像id
7.删除操作
docker rm 容器Name1 容器Name2 # 删除一个或多个容器,多个容器名称之间用空格间隔
docker rmi 镜像Name1 镜像Name2 # 删除一个或多个镜像,多个镜像名称之间用空格间隔
8.获取容器或镜像的源数据
docker inspect 镜像/容器Name|奖项/容器ID
9.进入容器控制台
docker-compose exec app目录 bash
10.加载镜像到容器
# 第一种方式:直接在后台运行
# -p port1 为本地端口号; port2 为映射端口号; c_name为容器名; imagename为打包的镜像名
docker run -p port1:port2 -d --name c_name imagename
# 第二种方式:在前台交互式运行(常用于调试)
# -t 为终端运行;-i 为交互式操作;imagename为打包的镜像名;/bin/bash为交互式Shell,此命令需放在镜像名后
docker run -t -i imagename /bin/bash