编辑
2023-01-26
灌水
00
请注意,本文编写于 1006 天前,最后修改于 665 天前,其中某些信息可能已经过时。

目录

Docker简介
Docker依赖
安装Docker
更新系统
安装Wget
安装docker
常用指令
运行Docker
启动容器
查看容器
进入容器
停止容器
删除容器
安装Docker Compose
使用二进制文件安装Docker Compose
运行Docker Compose
卸载Docker

img.jpg

Docker简介

  • Docker是一个快捷、轻便的系统级虚拟化技术,开发者和系统管理员可以使用它构建具备所有必要依赖项的应用程序,并将其作为一个包发布。

  • Docker与其他如VMWare、Xen、以及VirtualBox等工具的虚拟化方式不同,每个虚拟机不需要单独的客户操作系统。

  • 所有的Docker容器有效地共享同一个主机系统内核。每个容器都在同一个操作系统中的隔离用户空间中运行。

  • Docker容器可以在任何Linux版本上运行。比如说使用Centos或是Ubuntu,彼此之间能相互开发、共享并分发 Docker镜像

  • 无需担心操作系统、软件以及自定义设置,任何事都不用担心。只要机安装了Docker,就能持续开发。简言之,Docker能够在任何地方运行!

  • Docker镜像Docker容器的区别:Docker镜像是一个描述容器应该如何表现的文件,而 Docker容器Docker镜像的运行(或停止)状态。


Docker依赖

为了安装并配置Docker ,你的系统必须满足下列最低要求:

  1. 64位Linux或Windows系统
  2. 如果使用Linux,内核版本必须不低于3.10
  3. 能够使用​​sudo​​权限的用户
  4. 在你系统BIOS上启用了VT虚拟化技术支持on your system BIOS,你的系统应该联网

在Linux终端上运行以下命令验证内核以及架构详细信息:

bash
uname -a

只要你的系统内核版本不低于3.10 ,并且是64位系统,Docker一般都会正常运行。


安装Docker

更新系统

bash
sudo apt update && sudo apt upgrade

安装Wget

bash
sudo apt-get update && sudo apt-get install -y wget

安装docker

bash
wget -qO- get.docker.com | bash

常用指令

bash
#查看docker版本 docker -v #查看docker状态 sudo systemctl status docker #允许开机启动docker sudo systemctl enable docker #测试docker hello world sudo docker run hello-world

运行Docker

启动容器

bash
# 查看可用版本 sudo docker search 容器名 # 拉取镜像 sudo docker pull 镜像名 # 查看已安装镜像 sudo docker images

创建一个新的容器并运行

bash
sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用的参数说明:

  • -a:stdin:指定标准输入输出内容类型,可选STDIN/STDOUT/STDERR三项;

  • -d:后台运行容器,并返回容器ID;

  • -i:以交互模式运行容器,通常与-t同时使用;

  • -P:随机端口映射,容器内部端口随机映射到主机的端口

  • -p:指定端口映射,格式为:主机(宿主)端口:容器端口

  • -t:为容器重新分配一个伪输入终端,通常与-i同时使用;

  • --name="xxx":为容器指定一个名称;

  • --dns 8.8.8.8:指定容器使用的DNS服务器,默认和宿主一致;

  • --dns-search example.com:指定容器DNS搜索域名,默认和宿主一致;

  • -h "xxx":指定容器的hostname;

  • -e username="ritchie":设置环境变量;

  • --env-file=[]:从指定文件读入环境变量;

  • -m:设置容器使用内存最大值;

  • --net="bridge":指定容器的网络连接类型,支持bridge/host/none/container四种类型;

  • --volume , -v:绑定一个卷


查看容器

bash
# 列出容器 sudo docker container ls sudo docker container ps sudo docker container list sudo docker ps

常用的参数说明:

  • -a, --all:列出所有的容器,包括停止运行的容器。
  • -s, --size:显示容器的大小。
  • -q, --quiet:仅显示容器ID。
  • -f, --filter:过滤器,支持key=value的格式进行过滤,多个过滤器使用-f "key=value" -f "key=value"格式。

进入容器

bash
#attach,如果从这个stdin中exit,会导致容器的停止 sudo docker attach 容器名/容器ID #exec,如果从这个stdin中exit,不会导致容器的停止 sudo docker exec -it 容器名/容器ID [bash/sh]

停止容器

bash
sudo docker container stop 容器名/容器ID sudo docker stop 容器名/容器ID

可以使用-t, --time设置kill之前的等待时间。


删除容器

bash
sudo docker container rm 容器名/容器ID sudo docker rm 容器名/容器ID

sudo docker rm不能直接删除运行中的容器,可是使用-f, --force参数强制删除,一般不推荐这么做,建议先使用sudo docker stop停止容器,然后再使用sudo docker rm删除容器,给容器留出一些时间进行清理等工作。

bash
#删除所有停止的容器 sudo docker rm $(docker ps -a -q) sudo docker container prune -f

安装Docker Compose

Docker Compose是一个可用于定义和运行多容器Docker应用程序的工具。使用Docker Compose,你可以使用Compose文件来配置应用程序的服务。然后,使用单个命令,你可以从配置中创建和启动所有服务。


使用二进制文件安装Docker Compose

在github上查看最新的Docker Compose版本:Docker Compose

bash
#运行命令安装最新稳定的Docker Compose文件 sudo curl -L "https://github.com/docker/compose/releases/download/{版本号}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose #赋予Docker Compose文件可执行权限 sudo chmod +x /usr/local/bin/docker-compose #查看Docker Compose版本 docker-compose --version

运行Docker Compose

创建docker-compose.yaml,配置需要运行的容器

bash
#运行Docker Compose sudo docker-compose up -d #查看实时日志 sudo docker-compose logs -f #停止Docker Compose sudo docker-compose down #重新拉取docker-compose.yaml配置的镜像版本 sudo docker-compose pull

卸载Docker

bash
#删除docker及安装时自动安装的包 sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc #查看docker相关包是否卸载干净 dpkg -l | grep docker #删除相关插件 sudo apt-get autoremove docker-ce-* #删除docker的相关配置目录 rm -rf /etc/systemd/system/docker.service.d rm -rf /var/lib/docker #查看docker版本,确定是否卸载完毕 docker --version

安装docker和docker-compose