Docker使用教程及常用命令
Docker是一个开源的应用容器引擎,允许开发者将应用以及依赖打包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows上。它非常适用于持续集成与持续交付(CI/CD)。
1. 安装Docker
首先,你需要在你的服务器上安装Docker。根据你的操作系统,可以选择适合的安装方法。
(1)对于Ubuntu:
sudo apt-get update
sudo apt-get install docker.io
启动Docker并设置为开机启动:
sudo systemctl start docker
sudo systemctl enable docker
(2)对于Centos:
-
安装所需的包
首先,确保你已经安装了必要的软件包。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
-
添加Docker存储库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
安装Docker CE
sudo yum install docker-ce
-
启动Docker并使其开机启动
sudo systemctl start docker
sudo systemctl enable docker
-
验证Docker是否正确安装
运行一个简单的Docker Hello World镜像来验证安装是否成功:
docker run hello-world
如果你看到Hello World的消息,那么Docker已经成功安装并正在运行。
注意: 安全最佳实践建议您不要使用root用户来运行Docker容器。您可以通过创建一个docker用户组并将用户添加到该组来避免使用root权限。此外,还建议使用Docker提供的安全增强功能,如AppArmor、SELinux等来提高Docker容器的安全性。
参考教程:Centos7下安装Docker(详细安装教程)通俗易懂-腾讯云开发者社区-腾讯云 (tencent.com)
2. Docker基本命令
-
查看Docker版本
docker --version
-
运行一个Docker容器
如果你想要运行一个简单的nginx服务器,你可以执行以下命令:
docker run -d -p 80:80 nginx
-
查看正在运行的Docker容器
docker ps
若要查看所有容器(包括停止的),可以使用:
docker ps -a
-
停止容器
docker stop [容器ID或容器名]
-
移除容器
docker rm [容器ID或容器名]
-
查看本地的Docker镜像
docker images
-
移除Docker镜像
docker rmi [镜像ID或名称]
-
构建Docker镜像
在Dockerfile所在的目录中,执行:
docker build -t [镜像名]:[标签] .
-
Docker日志
查看容器的输出:
docker logs [容器ID或容器名]
3. Docker Compose
Docker Compose介绍
Docker Compose是一个用于在单一主机上定义和运行多容器应用的工具。通过一个简单的YAML文件,你可以定义应用的服务、网络和卷,然后使用一个命令来启动整个堆栈。
(1)Docker Compose的YAML模板格式
以下是一个简单的Docker Compose模板示例,它定义了一个web服务和一个数据库服务:
version: '3' # 使用的Compose文件版本
services: # 定义的服务列表
web: # 服务名
image: nginx:latest # 使用的Docker镜像
ports:
- "5000:80" # 端口映射,格式为"宿主机端口:容器端口"
db:
image: postgres:latest
environment: # 设置环境变量
POSTGRES_PASSWORD: example
networks: # 可选,定义网络
default:
external:
name: my-network
volumes: # 可选,定义卷
db-data:
当你有一个名为docker-compose.yml
的文件时,你可以运行docker-compose
命令来控制定义的服务。
(2)Docker Compose常用命令
-
启动定义在Compose文件中的服务
docker-compose up
docker-compose up
命令需要在docker-compose.yml
文件所在的目录下运行,除非你通过-f
或--file
参数指定了一个不同的路径和文件名。当你在终端或命令行界面中运行
docker-compose
命令,它默认会在当前目录下寻找名为docker-compose.yml
或docker-compose.yaml
的文件。例如,如果你的
docker-compose.yml
文件位于/path/to/your-project
,你应该首先更改到那个目录:cd /path/to/your-project docker-compose up
但是,如果你在另一个目录,并且不想改变当前目录,你可以使用
-f
参数指定docker-compose.yml
文件的路径:docker-compose -f /path/to/your-project/docker-compose.yml up
如果你有多个Compose文件,并希望按顺序应用它们,你可以多次使用
-f
参数。例如:docker-compose -f docker-compose.base.yml -f docker-compose.override.yml up
这会首先加载
docker-compose.base.yml
文件,然后将docker-compose.override.yml
中的任何内容合并或覆盖它。 -
在后台模式启动服务
docker-compose up -d
-
停止服务
docker-compose stop
-
停止并移除容器、网络、卷和镜像
docker-compose down
-
查看服务的输出
docker-compose logs [服务名]
-
构建或重建服务
如果你有一个Dockerfile并在
docker-compose.yml
中指定了build指令,你可以使用以下命令来构建服务的镜像:docker-compose build
-
查看运行中的容器的状态
docker-compose ps
-
执行一个命令在特定服务的容器中
docker-compose exec [服务名] [命令]
总结
Docker Compose为开发者提供了一种方便、统一的方式来定义、管理和运行多容器应用。对于复杂的应用,使用Docker Compose可以大大简化部署和管理的过程。