重启Docker服务以应用新的配置:

sudo systemctl daemon-reload
sudo systemctl restart docker

验证Docker是否安装成功:

sudo docker run hello-world

假如能否成功拉取并运行hello-world镜像docker images 目录linux教程,则说明DockerEngine已成功安装并配置了镜像加速。

至此,你已然成功安装并配置好了Docker和DockerCompose。如今你可以开始使用它们来建立和管理你的容器化应用了。

基本使用方式

好的,在成功安装Docker和DockerCompose以后,接出来我们将介绍它们的基本使用技巧。

这篇手册将分为两部份:

Docker的基本使用:怎样管理单个容器,包括镜像、容器的生命周期管理。

DockerCompose的基本使用:怎样通过一个配置文件来定义和运行多个容器的应用。

Docker基本使用方式

Docker的核心是围绕镜像(Image)和容器(Container)展开的。

1.镜像管理(ImageManagement)

a.搜索镜像

从DockerHub(或则你配置的镜像加速器)上搜索须要的镜像。

docker search nginx

这会列举所有与”nginx”相关的公开镜像。

b.拉取镜像

将远程库房的镜像下载到本地。

# 拉取最新版的 Nginx 镜像
docker pull nginx

Docker服务重启应用新配置_验证Docker安装成功拉取hello-world镜像_docker images 目录

# 拉取特定版本的 Nginx 镜像 docker pull nginx:1.21.6

若果不指定标签(tag,如:1.21.6),默认会拉取latest标签的镜像。

c.查看本地镜像

列举所有早已下载到本地的镜像。

docker images

d.删掉本地镜像

当一个镜像不再须要时,可以删掉它以释放c盘空间。

docker rmi nginx:1.21.6

假如该镜像正被某个容器使用,你须要先删掉该容器能够删掉镜像。可以使用-f参数强制删掉。

2.容器生命周期管理(ContainerLifecycleManagement)

a.运行容器(创建并启动)

dockerrun是最核心的命令,它从一个镜像创建一个新的容器并启动它。

基本示例:运行一个NginxWeb服务器

docker run --name my-nginx -p 8080:80 -d nginx

参数解释:

b.查看正在运行的容器

Bash

docker ps

要查看所有容器(包括已停止的),请使用-a参数:

docker ps -a

c.停止容器

Docker服务重启应用新配置_验证Docker安装成功拉取hello-world镜像_docker images 目录

docker stop my-nginx

这儿的my-nginx是你在dockerrun时指定的容器名。你也可以使用容器ID。

d.启动已停止的容器

docker start my-nginx

e.重启容器

docker restart my-nginx

f.步入正在运行的容器(执行命令)

有时侯须要步入容器内部进行调试或查看文件。

docker exec -it my-nginx /bin/bash

参数解释:

g.查看容器日志

查看容器的标准输出日志,特别适宜拿来排错。

docker logs my-nginx
# 持续跟踪日志(类似 tail -f)
docker logs -f my-nginx

h.删掉容器

删掉一个或多个早已停止的容器。

# 首先确保容器已经停止
docker stop my-nginx
# 然后删除容器
docker rm my-nginx

假如要删掉一个正在运行的容器linux ftp,须要添加-f参数。

DockerCompose基本使用方式

当你的应用须要多个服务(比如一个Web应用+一个数据库)协同工作时,自动管理多个dockerrun命令会显得十分繁杂。DockerCompose容许你使用一个YAML文件来定义和管理一个多容器的Docker应用。

核心是docker-compose.yml文件。

1.编撰docker-compose.yml文件

假定我们要布署一个WordPress网站,它须要一个WordPress服务和一个MySQL数据库服务。

创建一个名为docker-compose.yml的文件,并写入以下内容:

version: '3.8'  # 指定 compose 文件版本
services:  # 定义一组服务
  db:  # 服务名称,这里是数据库服务
    image: mysql:5.7  # 使用的镜像
    container_name: wordpress_db
    volumes:  # 数据卷挂载,用于数据持久化
      - db_data:/var/lib/mysql
    restart: always  # 容器退出时总是重启
    environment:  # 设置环境变量
      MYSQL_ROOT_PASSWORD: your_strong_password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: your_wordpress_password
  wordpress:  # 服务名称,这里是 WordPress 服务
    image: wordpress:latest
    container_name: wordpress_app
    volumes:
      - ./wp_content:/var/www/html/wp-content
    ports:  # 端口映射
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306  # 连接到 db 服务的 3306 端口
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: your_wordpress_password
      WORDPRESS_DB_NAME: wordpress
    depends_on: # 声明依赖关系,wordpress 会在 db 启动之后再启动
      - db
volumes:  # 定义数据卷
  db_data:
  wp_content:

关键点:

2.管理应用

在docker-compose.yml文件所在的目录中,执行以下命令。请注意docker images 目录,新版命令是dockercompose(无连字符)。

a.启动应用(创建并启动所有服务)

docker compose up -d

-d参数表示在后台运行。首次运行时,它会手动拉取所需的镜像。

b.查看服务状态

docker images 目录_验证Docker安装成功拉取hello-world镜像_Docker服务重启应用新配置

docker compose ps

c.查看服务日志

# 查看所有服务的日志
docker compose logs
# 查看特定服务的日志并持续跟踪
docker compose logs -f wordpress

d.停止并移除容器

docker compose down

这个命令会停止并删掉由docker-compose.yml定义的容器和网路。假如须要同时删掉volumes,可以加上--volumes参数。

e.暂停和恢复服务

# 暂停服务中的容器
docker compose pause
# 恢复服务中的容器
docker compose unpause

f.重启服务

docker compose restart

总结

从简单的dockerrun开始练习,熟悉容器的生命周期。当你须要布署更复杂的应用时,再转向使用DockerCompose,这将大大简化你的布署和管理工作。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复