一小时学会Docker使用!

发布于:2025-05-13 ⋅ 阅读:(13) ⋅ 点赞:(0)

前言

Docker:
Docker简单来说就是简化环境配置的,我们配置环境只需要简单的docker pull,docker run即可,而删除环境也很容易,减少了运维和开发人员工作量。

Docker-compose:
Docker-Compose 项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。

Docker-Compose 项目由 Python 编写,调用 Docker 服务提供的API来对容器进行管理。因此,只要所操作的平台支持 Docker API,就可以在其上利用Compose 来进行编排管理。

前置操作:

Docker一定是在Linux环境下运行的,因此必须会linux。

我们操作环境是ubuntu22.04。

首先要安装ubuntu,我们需要先安装一下ssh环境,方便后期使用ssh工具连接。

一、安装ssh连接工具

  1. 安装 OpenSSH 服务器

首先,安装 openssh-server 包,它包含了SSH服务端:

sudo apt update
sudo apt install openssh-server
  1. 启动 SSH 服务

安装完成后,启动SSH服务:

sudo systemctl start ssh
  1. 配置 SSH 服务自启动

为了确保每次系统启动时都自动启动SSH服务,可以设置SSH服务开机自启:

sudo systemctl enable ssh
  1. 检查 SSH 服务状态

确认SSH服务是否正在运行:

sudo systemctl status ssh

如果SSH服务运行正常,你会看到类似 active (running) 的状态。

  1. 配置防火墙

如果你的系统启用了防火墙(如ufw),你可能需要允许SSH流量。运行以下命令允许SSH通过防火墙:

sudo ufw allow ssh

然后,启用防火墙(如果还没有启用):

sudo ufw enable
  1. 检查 SSH 端口

默认情况下,SSH使用端口22。如果你的SSH服务没有使用默认端口或者被防火墙阻止,你需要确认是否正确配置了SSH端口。

可以查看SSH配置文件 /etc/ssh/sshd_config 中的端口设置:

sudo nano /etc/ssh/sshd_config

检查 Port 配置项,确保其设置为 22 或你希望使用的其他端口。修改后,重新加载SSH服务:

sudo systemctl reload ssh
  1. 连接到SSH

安装和配置完成后,你可以使用SSH客户端连接到你的Ubuntu服务器。假设服务器的IP地址是 192.168.138.xxx,使用以下命令:

ssh username@192.168.138.xxx

二、安装docker

  1. 更新现有的包

首先,确保你的包列表是最新的,并且安装了必要的依赖项:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
  1. 添加Docker的官方GPG密钥

下载并添加Docker的官方GPG密钥:

curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. 添加Docker官方的APT源

添加Docker的APT源到你的系统:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. 更新APT包索引

记得关闭防火墙

sudo systemctl stop firewall

再次更新包索引以从Docker官方源中获取包:

sudo apt update
  1. 安装Docker引擎

安装Docker引擎(Docker CE):

sudo apt install docker-ce
  1. 启动并启用Docker

安装完成后,启动Docker并设置它在系统启动时自动启动:

sudo systemctl start docker
sudo systemctl enable docker
  1. 验证Docker安装

运行以下命令来验证Docker是否安装成功:

sudo docker --version

运行结果:
在这里插入图片描述
显示这样的结果代表docker安装成功

8、安装docker-compose

下载docker-compose二进制文件:

curl -SL https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

赋予权限:

sudo chmod +x /usr/local/bin/docker-compose

验证:

docker-compose --version

运行结果:
在这里插入图片描述

三、Docker常见命令

①、拉取镜像

docker pull 镜像名:版本号

eg:

docker pull mysql:8.0.23

②、查看当前所有镜像

docker images

在这里插入图片描述

③、运行容器

这里以一个命令为例,讲解所有参数的含义。

docker run -d --name mysql -p 3306:3306 -v /home/sxc/mysql8/data:/var/lib/mysql -v /home/sxc/mysql8/my.cnf:/etc/mysql/conf.d/my.cnf -e MYSQL_ROOT_PASSWORD=123456 --restart=always mysql:8.0.23

首先最简单的是:docker run mysql:8.0.23

  • -d:表示容器会在后台运行,不占用当前终端。

  • – --name=mysql表示运行后容器的名字,如果不指定,会默认为镜像名,即mysql:8.0.23

  • -p 3306:3306,这里是指端口映射,注意先后顺序,前面端口是宿主机的端口,后面是docker镜像的端口。

  • -v /home/sxc/mysql8/my.cnf:/etc/mysql/conf.d/my.cnf 表示将目录挂载,前面是宿主机的目录,后面是docker容器内的目录,即宿主机的/home/sxc/mysql8/my.cnf和mysql镜像的/etc/mysql/conf.d/my.cnf目录的变化会一直,方便我们修改容器的配置文件,这样修改的时候直接在宿主机修改即可,-v可以有多个。

  • -e MYSQL_ROOT_PASSWORD=123456,其中-e参数表示设置环境变量,MYSQL_ROOT_PASSWORD=123456表示设置mysql的root用户密码为123456

  • – --restart=always 表示该容器永远开机自启动。

④、查看当前运行容器

docker ps

在这里插入图片描述
可以看到最左边这个是容器ID,是唯一的后面会用到。

⑤、停止容器运行

docker stop 容器名

在这里插入图片描述
⑥、启动/重启容器

docker start 容器名

docker restart 容器名

在这里插入图片描述

⑦、进入容器内部

docker exec -it 容器名 终端名

可以看到,我们进入了mysql容器内部。
在这里插入图片描述

退出容器内部的命令是:

exit

⑧、删除容器

docker rm -f 容器名

-f 表示强制删除
在这里插入图片描述
可以看到之前run的容器被删除了,因此restart的时候显示error。

⑨、删除镜像

docker rmi 镜像名

-f 表示强制删除

在这里插入图片描述
可以看到,此时镜像被删除了。

四、docker-compose使用

①、安装docker-compose

下载docker-compose二进制文件:

curl -SL https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

赋予权限:

sudo chmod +x /usr/local/bin/docker-compose

验证:

docker-compose --version

运行结果:
在这里插入图片描述
显示这样就表示安装成功了。
一般docker-compose安装在 /usr/local/bin目录下面。

②、docker-compose.yml配置

而我们如果像原来docker一样一个一个拉取镜像的话,效率太慢,因此我们可以将要拉取的环境配置到docker-compose.yml文件中,这样只需要按照文件运行,docker就会一个一个的帮我们拉取镜像并运行容器了。

我们以下面这个文件举例:
我这里在/home/sxc/docker-compose目录下面创建了一个docker-compose.yml文件,文件内容如下:

version: '2.1'

services:
  nginx:
    image: nginx:latest
    container_name: nginx_host1
    ports:
      - 8081:80
    volumes:
      - /opt/nginx:/opt/nginx/html
    networks:
      - host1-network

  redis:
    image: redis:latest
    container_name: redis_host1
    ports:
      - 63790:6379
    networks:
      - host1-network

networks:
  host1-network:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 192.168.11.0/24
          gateway: 192.168.11.254

注意执行docker-compose up -d命令的时候,一定要在与docker-compose.yml文件同一个目录下执行才可以。

运行结果:
在这里插入图片描述
可以看到直接帮我们拉取镜像并运行容器了。


网站公告

今日签到

点亮在社区的每一天
去签到