[linux]docker快速入门
安装
docker官网: CentOS | Docker Docs
- 准备工作: 准备ConstOS7的虚拟机环境
- 账密: root/root
- 飞书文档: Docs
- 卸载旧版本
// 首先如果系统中已经存在旧的Docker,则先卸载
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 注意,这些是一条指令
2.配置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
意外情况, 安装失败:
解决: 服务器连接不到网络,需要配置镜像源
[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
- i 进入插入模式, esc 退出插入模式, :wq保存并退出
- 清理缓存, 重新安装
3.安装Docker
// 执行命令,安装Docker
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 查看版本: docker -v
- 查看服务是否启动: docker images
4.启动和校验
# 启动Docker
systemctl start docker
# 停止Docker
systemctl stop docker
# 重启
systemctl restart docker
# 设置开机自启
systemctl enable docker
# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps
- 先设置开启自启, 再启动, 再查看进程
5.配置镜像加速
镜像地址可能会变更,如果失效可以百度找最新的docker镜像。
配置镜像步骤如下:
# 创建目录
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
部署MySql
先停掉虚拟机中的MySQL,确保虚拟机已经安装Docker,且网络开通的情况下,执行下面命令安装MySQL
docker run -d \
--name mysql2 \
-p 3307:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
mysql
- / 只是换行的作用
执行过程
- 查看是否启动成功: docker ps
- 我已经关闭防火墙
连接mysql
镜像和容器
当我们利用Docker安装应用时,Docker会自动搜索并下载应用镜像(image)。
镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。
Docker会在运行镜像时创建一个隔离环境,称为容器(container)。
镜像仓库: 存储和管理镜像的平台,Docker官方维护了一个公共仓库: DockerHub.
- 我们输入命令, 会被docker服务监听到, 然后交给守护进程执行
- 如果需要下载镜像, 就会去镜像仓库下载
- 下载完成后, 就会运行镜像, docker会为运行的镜像创建容器, 这样就可以多实例部署, 互不干扰
命令解读
- docker run: 创建并运行一个容器,-d是让容器在后台运行
- --name mysql: 给容器起个名字,必须唯一
- -p 3306:3306: 设置端口映射(宿主机端口:容器服务端口)
-
- 宿主机对外可以访问, 但是容器服务是对外隔离的
- 需要使用宿主机代理, 访问容器服务
- -e KEY=VALUE: 是设置环境变量
-
- 各软件启动需要设置的环境变量不同
- 可以去镜像仓库, 查看镜像启动所需要的环境变量
- mysql: 指定运行的镜像的名字
-
- 镜像名称一般分两部分组成: [repository]:[tag]。
- 其中repository就是镜像名, tag是镜像的版本
- 在没有指定taq时,默认是latest,代表最新版本的镜像