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

数据卷

相关推荐
laoliu19967 小时前
Odoo 18企业版源码 包含 部署教程
运维·服务器
程序员老赵7 小时前
Supabase Postgres Docker 容器化部署指南
docker·postgresql
守城小轩8 小时前
基于Chrome140的Quora账号自动化(关键词浏览)——运行脚本(三)
运维·自动化·chrome devtools·指纹浏览器·浏览器开发
未来之窗软件服务8 小时前
幽冥大陆(五十五)ASR SetThreadInformation C语言识别到自动化软件
运维·自动化·asr·东方仙盟·操作系统级别错误
开开心心就好8 小时前
免费卸载工具,可清理残留批量管理启动项
linux·运维·服务器·windows·随机森林·pdf·1024程序员节
Lbwnb丶8 小时前
检测服务器是否是虚拟化,如KVM,VM等
linux·运维·服务器
老猿讲编程8 小时前
【车载信息安全系列4】基于Linux中UIO的HSE应用实现
linux·运维·服务器
鸡吃丸子8 小时前
初识Docker
运维·前端·docker·容器
wanhengidc9 小时前
巨椰 云手机 云游戏稳定运行
运维·服务器·arm开发·游戏·云计算
林义满9 小时前
大促零宕机背后的运维升级:长三角中小跨境电商的架构优化实践
大数据·运维·架构