Docker详细安装教程及基本使用

文章目录

Docker🔧安装Docker🧱基础常见命令数据卷数据卷挂载:本地目录挂载:
镜像Dockerfile构建镜像:
网络默认网络:docker0自定义网络:

🖥️项目部署单个容器逐一部署部署MySQL:部署前端:部署后端:
多个相互关联的容器快速部署:DockerCompose

Docker

🔧安装Docker

前提条件:准备一台Linux系统的虚拟机

更新yum仓库源为阿里云镜像源

#编辑文件
sudo vim /etc/yum.repos.d/CentOS-Base.repo
#进入文件后,输入":%d",删除文件中所有内容
:%d
#按键盘i键,再将一下内容复制到文件中

12345
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7



12345678910111213141516171819202122232425
#按esc退出编辑,输入":wq",保持并退出
:wq

12

清除并重建缓存

sudo yum clean all
sudo yum makecache
sudo yum update

123

配置Docker的yum库

#安装yum工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

#配置Docker的yum源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

#更新yum,建立缓存
sudo yum makecache fast

12345678910

安装Docekr

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

1

启动和校验

#重启
systemctl restart docker

#设置开机自启
systemctl enable docker

#执行docker ps命令,如果不报错,说明安装启动成功
docker ps

12345678

配置镜像加速

#创建目录
mkdir -p /etc/docker

#复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://mirrors.tuna.tsinghua.edu.cn",
        "http://mirrors.sohu.com",
        "https://ustc-edu-cn.mirror.aliyuncs.com",
        "https://ccr.ccs.tencentyun.com",
        "https://docker.m.daocloud.io",
        "https://docker.awsl9527.cn"
    ]
}
EOF

#重新加载配置
systemctl daemon-reload

#重启Docker
systemctl restart docker


1234567891011121314151617181920212223

🧱基础

常见命令

Docker详细安装教程及基本使用

命令 说明 案例
docker pull 拉取镜像 docker pull nginx
docker push 推送镜像到DocekrRegistry
docker images 查看本地镜像
docker rmi 删除本地镜像 docker rmi nginx:latest
docker run 创建并运行容器(不能重复创建) docker run -d –name nginx -p 80:80 nginx
docker stop 停止指定容器 docker stop nginx
docker start 启动指定容器 docker start nginx
docker restart 重新启动容器 docker restart nginx
docker rm 删除指定容器 docker rm nginx -f
docker ps -a 查看所有容器
docker logs 查看容器运行日志 docker logs -f nginx
docker exec 进入容器 docker exec -it nginx bash
docker save 保持镜像到本地压缩文件 docker save -o nginx.tar nginx:latest
docker load 加载本地压缩文件到镜像 docker load -i nginx.tar
docker inspect 查看容器详细信息 docker inspect nginx

命令别名:

vi ~/.bashrc

#添加别名
alias dps='docker ps --format "table {{.ID}}	{{.Image}}	{{.Ports}}	{{.Status}}	{{.Names}}"'
alias dis='docker images'

#让别名生效
source ~/.bashrc

12345678

数据卷

作用:方便对容器内部温江进行修改

命令:

命令 说明 案例
docker volume create 创建数据卷 docker volume create html
docker volume ls 查看所有数据卷
docker volume rm 删除指定数据卷 docker volume rm html
docker volume inspect 查看某个数据卷的详情 docker volume inspect html
docker volume prune 清除数据卷
数据卷挂载:

宿主机目录和数据卷做映射,数据卷和容器目录做映射

Docker详细安装教程及基本使用

在执行docker run命令时,使用**-v 数据卷:容器内目录** 可完成数据卷挂载

例:

docker run -d  
--name nginx 
-p 80:80  
-v html:/usr/share/nginx/html 
nginx

12345
本地目录挂载:

宿主机目录和容器目录做映射

在执行docker run命令时,使用**-v 本地目录:容器内目录** 可完成本地目录挂载

例:

#在宿主机中提前创建相应的目录
docker run -d  
--name mysql 
-p 3306:3306  
-e TZ=Asia/Shanghai 
-e MYSQL_ROOT_PASSWORD=123  
-v /root/mysql/data:/var/lib/mysql 
-v /root/mysql/init:/docker-entrypoint-initdb.d 
-v /root/mysql/conf:/etc/mysql/conf.d 
mysql

12345678910

镜像

Docker详细安装教程及基本使用

Dockerfile构建镜像:

描述镜像结构

Docker详细安装教程及基本使用

构建镜像

docker bulid -t myImage .

注意命令的执行需要在Dockerfile同一目录下

网络

默认网络:docker0

在同一个网络中的容器,可以通过IP进行相互访问

但是,服务重新启动,IP地址会重新分配,故这种方式不稳定

自定义网络:
命令 说明 案例
docker network create 创建一个网络 docker network create mynet
docker network ls 查看所有网络
docker network rm 删除指定网络 docker network rm mynet
docker network prune 清除未使用的网络
docker network connect 指定容器加入某网络 docker network connect mynet mysql
docker network disconnect 指定容器离开某网络 docker network disconnect mynet mysql
docker network inspect 查看网络详细信息 docker network inspect mynet

🖥️项目部署

单个容器逐一部署

部署MySQL:
#在宿主机中提前创建相应的目录
docker run -d  
--name mysql 
-p 3306:3306  
-e TZ=Asia/Shanghai 
-e MYSQL_ROOT_PASSWORD=123  
-v /root/mysql/data:/var/lib/mysql 
-v /root/mysql/init:/docker-entrypoint-initdb.d 
-v /root/mysql/conf:/etc/mysql/conf.d 
--network myneet 
mysql

1234567891011
部署前端:

将静态资源和配置文件放到虚拟机上

创建并运行时,挂载静态资源和配置文件

docker run -d 
--name nginx  
-p 8080:8080 
-v /root/nginx/html:/usr/share/nginx/html 
-v /root/nginx/nginx.conf:/etc/nginx/nginx.conf 
--network myneet 
nginx

1234567
部署后端:

将项目打包成jar包Dockerfile描述镜像结构将jar包和Dockerfile放到虚拟机上docker bulid构建镜像docker run 部署应用

docker run -d 
--name project 
-p 8080:8080 
--network mynet 
myImage.

12345

多个相互关联的容器快速部署:DockerCompose

创建docker-compose.yml

#案例:
version: "3.8"

services:
  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "./mysql/conf:/etc/mysql/conf.d"
      - "./mysql/data:/var/lib/mysql"
      - "./mysql/init:/docker-entrypoint-initdb.d"
    networks:
      - hm-net
  hmall:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: hmall
    ports:
      - "8080:8080"
    networks:
      - hm-net
    depends_on:
      - mysql
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "18080:18080"
      - "18081:18081"
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./nginx/html:/usr/share/nginx/html"
    depends_on:
      - hmall
    networks:
      - hm-net
networks:
  hm-net:
    name: hmall


123456789101112131415161718192021222324252627282930313233343536373839404142434445

一键部署

#在docker-compose.yml的同一目录下执行改命令
docker compose up -d

12
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...