现在软件开发都用容器化技术了,而 Docker 就是最火的容器化平台。这篇文章就是要教你怎么用 Docker,包括安装、启动、查看、进入、拉取、删除、启动容器,还有各种参数和命令。就像在工作中,你得知道怎么用各种工具,比如锤子、电钻、螺丝刀,才能把东西做好。现在 Docker 就是你工具箱里必不可少的一件利器,用它来搭建开发环境和部署应用程序,简直是 so easy!
Docker 的安装#
Docker 的安装非常简单,只需要到官网下载对应的安装包,然后按照提示进行安装即可。在安装完成后,可以通过以下命令来验证 Docker 是否安装成功:
docker version
如果能够输出 Docker 的版本信息,则说明 Docker 已经成功安装。
Docker 的启动#
在安装完成后,可以通过以下命令来启动 Docker:
systemctl start docker
如果想要 Docker 在系统启动时自动启动,可以使用以下命令:
systemctl enable docker
查看镜像信息#
在使用 Docker 之前,首先需要了解 Docker 镜像的概念。Docker 镜像是一个轻量级、可执行的独立软件包,包含了运行应用程序所需的所有内容,包括代码、运行时环境、库、环境变量和配置文件等。
要查看本地的 Docker 镜像列表,可以使用以下命令:
docker images
该命令会列出本地所有的镜像,包括镜像 ID、镜像名称、镜像标签和镜像大小等信息。
进入镜像#
有时候需要进入到某个镜像中进行操作,可以使用以下命令:
docker exec -it 镜像名称 /bin/bash
其中,-it 参数表示以交互式的方式进入容器中,并打开一个终端。/bin/bash 表示进入容器后默认执行的命令是 Bash 终端。
拉取镜像#
如果本地没有所需的 Docker 镜像,可以通过以下命令拉取:
docker pull 镜像名称
该命令会从 Docker Hub 上下载指定的镜像,并保存到本地。
删除容器#
当不需要某个容器时,可以使用以下命令将其删除:
docker rm 容器ID或容器名称
启动容器#
要启动一个容器,可以使用以下命令:
docker run -d -p 主机端口:容器端口 镜像名称
其中,-d 参数表示以后台方式运行容器。-p 参数表示将主机端口映射到容器端口。例如,将主机的 8080 端口映射到容器的 80 端口:
docker run -d -p 8080:80 nginx
以哪个镜像启动一个新镜像#
有时候需要在已有的镜像上进行修改,并生成一个新的镜像。可以使用以下步骤:
-
启动一个容器并进入:
docker exec -it 镜像名称 /bin/bash
-
在容器中进行修改,并保存更改。
-
退出容器,并提交更改:
docker commit 容器ID 新镜像名称
-
查看新生成的镜像:
docker images
启动时各种参数#
在启动容器时,可以指定各种参数来满足特定的需求。以下是一些常用的参数:
- -d:以后台方式运行容器。
- -p:将主机端口映射到容器端口。
- -v:将主机目录挂载到容器目录。
- --name:为容器指定一个名称。
- --restart:指定容器停止后自动重启的策略。
例如,在启动一个 MySQL 容器时,可以使用以下命令:
docker run -d --name mysql -p 3306:3306 -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
该命令指定了容器名称为 mysql,将主机的 3306 端口映射到容器的 3306 端口,并将主机目录 /root/mysql/data 挂载到容器目录 /var/lib/mysql 中。同时还指定了 MySQL 的 root 用户密码和字符集等参数。
其他相关命令#
除了上述介绍的命令外,Docker 还提供了许多其他相关命令,例如:
- docker ps:查看正在运行的容器。
- docker stop:停止正在运行的容器。
- docker logs:查看容器日志。
- docker exec:在正在运行的容器中执行命令。
- docker build:根据 Dockerfile 构建新的镜像。
以上只是部分常用命令,Docker 还提供了许多其他强大的功能和命令,可以根据实际需求进行学习和使用。
总结#
本篇文章介绍了 Docker 的基本使用方法,以及其他的相关命令。Docker 是一款非常强大和灵活的工具,可以帮助开发者更加高效地进行软件开发和部署。
本篇总结大部分来自于Docker - 从入门到实践 和自己工作中的记录
PS#
自从用了 docker 后,想了解很多组件都直接使用 docker 安装,比如 mysql、redis、nginx 等等,这样就不用担心版本问题,也不用担心安装过程中的各种问题,直接拉取镜像,然后启动就可以了,非常方便。