一. 安装docker
curl -fssl [https://get.docker.com](https://get.docker.com/) | bash -s docker --mirror Aliyun
这个命令的含义是使用curl工具从"get.docker.com"获取一段脚本,并通过管道(|)将该脚本作为输入传递给bash命令进行执行。 具体来说,这段脚本会安装Docker,并指定使用阿里云镜像加速器。镜像加速器可以提高Docker镜像的下载速度,避免直接从Docker Hub下载镜像,而是通过阿里云的镜像加速服务来下载。
二. docker常用命令
1. 启动docker
systemctl start docker
2. 查看docker状态
sudo systemctl status docker
ps -ef | grep docker
3. 列出当前系统中所有的 Docker 容器,包括已经停止运行的容器
命令:
docker ps -a
扩展:docker ps -a 和docker images 区别
docker ps -a:这个命令用于列出所有的容器,包括正在运行的和已停止的。它会显示容器的状态、ID、名称、创建时间、端口映射等信息。如果你想查看你系统上所有存在的容器以及它们的详细信息,可以使用这个命令。通过 -a 参数,该命令会显示所有容器,包括那些已经停止运行的容器。
docker images:这个命令用于列出系统中所有的镜像。镜像是用于创建容器的模板,它包含了一个完整的文件系统和运行容器所需的应用程序。通过运行 docker images,你可以看到哪些镜像可用,并获取有关每个镜像的信息,如仓库名称、标签、大小和创建时间等。这个命令主要用于管理和监控你系统中的镜像。
因此,docker ps -a 用于查看容器的信息,包括正在运行的和已停止的容器,而 docker images 用于查看系统中可用的镜像列表。
4. 列出当前运行的 Docker 容器列表
docker ps
5. 下载镜像到本地,并在本地运行一个容器
docker run hello-world
用于测试 Docker 是否正确安装并能够正常运行。这个命令将会从 Docker Hub 上下载 hello-world 镜像并在本地运行一个容器,随后输出一条消息并退出容器。
如果一切正常,你应该会看到类似下面的消息: Hello from Docker!This message shows that your installation appears to be working correctly.... 这条消息表明 Docker 已经成功安装并能够正常工作了。
如果你看到了其他错误消息或警告,那么就需要进一步检查 Docker 的配置和环境设置,以确保 Docker 能够正常运行。
需要注意的是,hello-world 这个镜像非常小,仅包含一些最基本的功能,它并不会执行任何有用的操作。它只是用来测试 Docker 是否正常工作的一个简单示例。
扩展:容器和镜像的区别:
- 镜像和容器是 Docker 中两个重要的概念,它们之间存在以下关系:
- 镜像(Image):镜像是一个只读的模板,它包含了用于创建容器的文件系统和应用程序。镜像可以看作是容器的基础构建块,类似于操作系统中的安装盘或虚拟机中的镜像文件。镜像是静态的,一旦创建就不会更改。
- 容器(Container):容器是从镜像创建的、可以运行的实例。容器实际上是一个独立且可执行的环境,它包含了运行应用程序所需的文件系统、软件和配置等。容器可以被启动、停止、删除和重新启动,容器内的文件系统和应用程序可以被修改。
- 简而言之,镜像是容器的模板,而容器则是从镜像创建并运行的实例。当你运行一个容器时,Docker 会在基于镜像的基础上创建一个隔离的运行环境,包含了容器的文件系统和应用程序。每个容器都是相互隔离的,拥有自己的进程空间、网络接口和文件系统。
- 当你在 Docker 中使用镜像创建容器时,Docker 会根据镜像的定义构建一个容器,并在容器中运行。你可以同时创建多个容器,它们可以基于同一个镜像或不同的镜像。
- 需要注意的是,容器与镜像是分开存储的。镜像被保存在 Docker 主机的镜像仓库中,而容器则在运行时存在于 Docker 容器引擎中。每个容器都有自己的生命周期,可以根据需要启动、停止、删除或重新创建。
6. 删除容器(50a08f4812e0是容器id)
docker rm 50a08f4812e0
7. 查看容器日志
docker logs 18be00c1d734(容器id)
8. 从镜像仓库中下载镜像(以MySQL为例)
1. 下载mysql
下载特定版本
docker pull mysql:5.7
下载最新版本
docker pull mysql
2. 安装MySQL
命令
docker run -p 3306:3307 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
命令详解
创建一个名为"mymysql"的MySQL容器,并将主机的3306端口映射到容器的3307端口。此外,还将容器内的目录与主机上的目录进行了挂载,以便持久化数据。
具体来说,以下是对命令中各个参数的解释:
-p 3306:3307:将主机的3306端口映射到容器的3307端口。这样,通过访问主机的3306端口,可以连接到MySQL容器中运行的MySQL服务。
--name mymysql:指定容器的名称为"mymysql"。
-v $PWD/conf:/etc/mysql/conf.d:将主机中的$PWD/conf目录挂载到容器中的/etc/mysql/conf.d目录。这样,你可以在主机上编辑MySQL配置文件并应用更改。
-v $PWD/logs:/logs:将主机中的$PWD/logs目录挂载到容器中的/logs目录,用于存储MySQL日志文件。
-v $PWD/data:/var/lib/mysql:将主机中的$PWD/data目录挂载到容器中的/var/lib/mysql目录,用于持久化保存MySQL数据库文件。
-e MYSQL_ROOT_PASSWORD=123456:设置MySQL root用户的密码为"123456"。
-d mysql:使用"mysql"镜像来创建并运行容器。
执行该命令后,MySQL容器将在后台以守护进程方式运行。你可以通过访问主机的3306端口来连接到MySQL服务器,并使用设置的root密码进行身份验证。
- 3. 运行一个容器并启动bash shell 会话
docker exec -it b0e1cb8e7fa2 /bin/bash
命令详解
这个Docker命令将运行一个名为 "b0e1cb8e7fa2" 的容器,并启动一个 bash shell 会话以便你可以在容器中执行命令。
具体来说,以下是命令中各个参数的含义:
exec 命令:用于在运行的容器中执行命令。
-it 选项:表示使用交互式终端并分配一个伪终端。
b0e1cb8e7fa2:指定要在其中执行命令的容器ID或名称。
/bin/bash:要在容器中执行的命令,即启动一个 bash shell 会话。
执行该命令后,你将进入到一个 bash shell 会话中,可以在其中执行任意命令,就像在本地 Linux 系统中一样。你可以使用 exit 命令退出会话并返回到本地终端。
需要注意的是,如果容器没有安装 bash shell,则需要更改命令中的 /bin/bash 参数为所要使用的 shell 的路径。例如,如果容器中安装了 sh shell,则应该将参数修改为 /bin/sh。
退出要输入exit
4. 进入MySQL
mysql -uroot -p
三. 设置开机启动docker
systemctl enable docker
四. 配置阿里云镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["[https://u5tj7kjq.mirror.aliyuncs.com](https://u5tj7kjq.mirror.aliyuncs.com/)"]}EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
五. 安装docker-compose
1. 安装
安装命令
sudo curl -L "<https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname> -s)-$(uname -m)" -o /usr/local/bin/docker-compose
命令详解
sudo: 这是一个在 Linux 系统中使用超级用户权限执行命令的关键字。通过在命令前加上 sudo,你可以使用管理员权限来执行该命令。
curl: 这是一个用于在命令行中发送 HTTP 请求并获取响应的工具。在这个命令中,curl 用于下载 Docker Compose 的二进制文件。
-L: 这是 curl 命令的一个选项,表示要遵循重定向链接。如果下载链接有重定向,使用 -L 可以确保获取最终目标的文件。
https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-uname -s-uname -m: 这是 Docker Compose 的下载链接。其中的 `1.29.2` 表示 Docker Compose 的版本号,而 uname -s和uname -m`` 是两个命令替换,用于获取当前操作系统的名称和硬件架构。这样可以动态生成适合你系统的下载链接。
-o /usr/local/bin/docker-compose: 这部分将下载的 Docker Compose 二进制文件保存到 /usr/local/bin/docker-compose 路径下。/usr/local/bin 是一个常用的存放可执行文件的目录,使得你可以直接在终端中运行 docker-compose 命令。
2. 授予 Docker Compose 可执行权限
sudo chmod +x /usr/local/bin/docker-compose
3. 验证是否成功安装 Docker Compose
docker-compose -v