Docker讲解(未完结)

Linux环境搭建

首先大家需要先准备一下镜像,这里主包使用的是centos7,然后大家去安装,这里比较简单,主包就不带大家仔细看了,需要注意的就是

这里

一定要按照上面给定的来配置,特别是默认路由和DNS一定要一摸一样,ip的话,大家去自己设置就行,这个比较随意,但是也不要和路由以及DNS一样

然后去等待安装就行,最后重新启动就行,这样的话,我们的虚拟机就安装完毕

配置SSH客户端

首先大家需要先安装一下MX,这里主包把链接给大家

https://mobaxterm.mobatek.net/download-home-edition.html

大家下载绿色的就行

然后就是带着大家去配置默认编辑器

这里选择第三个,将你自己喜欢用的编辑器就行,比如vscode,比如node都可以,根据自己的喜好来就行,最后将下面的勾选上

将这里的右击粘贴左击复制勾选上就行,然后将第二个去掉

这里跟主包一样就行

这里的话将画上横线的去掉,不让他自己开机去启动

这样的话咱们的Linux环境就搭建完毕

Docker安装

首先需要先卸载旧版的docker

powershell 复制代码
yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine \
    docker-selinux 

然后是配置Docker的yum库

powershell 复制代码
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

这里大家要是出现Cannot find a valid baseurl for repo: base/7/x86_64 的问题的话,大家先去检查自己的网络连接,看一看是不是能够连接到百度,要是没有问题的话大家去看这篇blog 解决问题大概就能解决问题了

更新一下docker的yum源

powershell 复制代码
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,建立缓存

powershell 复制代码
sudo yum makecache fast

安装docker

powershell 复制代码
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动和校验

powershell 复制代码
# 启动Docker
systemctl start docker

# 停止Docker
systemctl stop docker

# 重启
systemctl restart docker

# 设置开机自启
systemctl enable docker

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

配置镜像加速

powershell 复制代码
# 创建目录
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

到这里咱们的基础工作就准备完毕

先手体验

powershell 复制代码
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123 \
  mysql

这里先来带着大家解读一下mysql的命令,首先我的run是创建一个新的容器,注意是新的容器,大家在以后的运行的过程中要是没有删除掉容器的话,不要去执行这条命令,可以使用start这条命令,--name后面跟着的我给这个容器起的名字,注意一下,这个名字必须唯一,然后就是-e后面跟着的是作者规定的,跟大家没有关系,-e后面能跟着多个参数,这里配置的mysql的密码,我们需要注意的是-p后面跟着的是关于我需要映射的端口,因为在我的虚拟机中我的端口可以随便写哈(你能记住),但是我在docker里面的端口是固定的对不对,那我的冒号前面的3306就可以随便写我写3308,3309都可以,最后面跟着的是我们镜像的名称,这里要是不指定版本号的话,默认是最新版的

基础命令

默认情况下,大家的docker需要自己去启动,这里大家设置一下关于自启动

powershell 复制代码
# Docker开机自启
systemctl enable docker

# Docker容器开机自启
docker update --restart=always [容器名/容器id]
powershell 复制代码
# 第1步,去DockerHub查看nginx镜像仓库及相关信息

# 第2步,拉取Nginx镜像
docker pull nginx

# 第3步,查看镜像
docker images
# 结果如下:
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        latest    605c77e624dd   16 months ago   141MB
mysql        latest    3218b38490ce   17 months ago   516MB

# 第4步,创建并允许Nginx容器
docker run -d --name nginx -p 80:80 nginx

# 第5步,查看运行中容器
docker ps
# 也可以加格式化方式访问,格式会更加清爽
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"

# 第6步,访问网页,地址:http://虚拟机地址

# 第7步,停止容器
docker stop nginx

# 第8步,查看所有容器
docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"

# 第9步,再次启动nginx容器
docker start nginx

# 第10步,再次查看容器
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"

# 第11步,查看容器详细信息
docker inspect nginx

# 第12步,进入容器,查看容器内目录
docker exec -it nginx bash
# 或者,可以进入MySQL
docker exec -it mysql mysql -uroot -p

# 第13步,删除容器
docker rm nginx
# 发现无法删除,因为容器运行中,强制删除容器
docker rm -f nginx

这里没啥好说的,都是命令,大家自己去记忆就行

大家需要注意的是关于查看所有的容起的后面加上-a

这样就能看到启动的容器和没有启动的容器了,还有就是去进入容命令后面记得跟上-it 然后加上容器的名称,当然,容器的名称后面也可以继续跟着别的

这里就是直接去启动mysql了

对于较长的第十步来说,大家完全可以参考git里面的起别名指令来给这里的起别名

powershell 复制代码
# 修改/root/.bashrc文件
vi /root/.bashrc
内容如下:
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
alias dis='docker images'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

配置完毕之后别忘记让配置文件生效

powershell 复制代码
source /root/.bashrc

数据卷

相关推荐
人工智能训练1 小时前
跨架构突围!X86 Ubuntu Dify 无缝迁移 Arm64 openEuler Docker 实战指南
人工智能·ubuntu·docker·容器·架构·arm64·dify
j***57681 小时前
Docker:基于自制openjdk8镜像 or 官方openjdk8镜像,制作tomcat镜像
docker·容器·tomcat
AI云原生1 小时前
Docker部署多个Python项目如何使用Nginx实现负载均衡的解决方案
python·nginx·docker·云原生·容器·kubernetes·负载均衡
s***38561 小时前
docker中配置redis
redis·docker·容器
好奇的菜鸟1 小时前
Ubuntu 系统 Docker 镜像加速
linux·ubuntu·docker
h***06651 小时前
Nginx搭建负载均衡
运维·nginx·负载均衡
不想画图1 小时前
负载均衡——LVS+Keepalived群集部署
运维·负载均衡·lvs
h***06651 小时前
docker 安装 mysql
mysql·adb·docker
love530love1 小时前
【笔记】解决 Stable Diffusion WebUI 启动 “找不到llama_cpp模块”
运维·windows·笔记·python·stable diffusion·github·llama