Docker新手入门(持续更新中)
一、定义
快速构建、运行、管理应用的工具。
Docker可以帮助我们下载应用镜像,创建并运行镜像的容器,从而快速部署应用。
所谓镜像,就是将应用所需的函数库、依赖、配置等应用一起打包得到的。
所谓容器,为每个镜像的应用进程创建的隔离运行环境就是容器。
所谓镜像仓库,存储和管理镜像的服务,DockerHub是目前最大的镜像仓库。
二、快速入门(以CentOS7.9为例)
(一)CentOS7.9虚拟机配置
1、NAT的IP设置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ce7dc1ff-a3ff-4f7f-9868-1a8da06e5483
DEVICE=ens33
ONBOOT=yes
IPADDR=10.15.253.10
NETMASK=255.255.255.0
GATEWAY=10.15.253.254
2、yum源配置
备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backu
下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
(二)安装Docker
1、安装必要的依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加 Docker 的官方仓库
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安装 Docker 社区版(Docker CE)
sudo yum install -y docker-ce docker-ce-cli containerd.io
4、启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
5、验证 Docker 安装
sudo docker run hello-world
6、(可选)配置国内镜像源
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn"]
}
EOF
7、(可选)重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
(三)部署MySQL
1、前提条件
先停掉虚拟机中的MySQL;确保虚拟机已经安装Docker;网络畅通
2、部署
docker run -d \
--name mysql \
-p 3306:3306
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
mysql:5.7
3、Docker命令解读
docker run -d \ 创建并运行一个容器,-d是让容器在后台运行
--name mysql \ 给容器起个名字,必须唯一
-p 3306:3306 设置端口映射,前是宿主机的端口,后是容器的端口。
-e TZ=Asia/Shanghai \ 设置环境变量
-e MYSQL_ROOT_PASSWORD=123 \ 设置环境变量
mysql:5.7 指定运行的镜像名字,一般由两部分组成:镜像名:镜像版本。
三、Docker基础
(一)常见命令
1、搜索 Nginx 镜像
在 Docker Hub 中搜索 Nginx 镜像,查看镜像名称:
docker search nginx
2、拉取 Nginx 镜像
拉取最新版本的 Nginx 镜像:
docker pull nginx
如果需要拉取特定版本的 Nginx,可以指定版本号,例如:
docker pull nginx:1.18.0
3、查看本地镜像列表
查看本地已拉取的镜像:
docker images
4、创建并运行 Nginx 容器
创建并运行一个 Nginx 容器,将容器的 80 端口映射到宿主机的 80 端口:
docker run -d -p 80:80 --name my-nginx nginx
5、查看容器
查看正在运行的容器:
docker ps
如果需要查看所有容器(包括已停止的),可以使用:
docker ps -a
6、停止容器
停止名为 my-nginx
的容器:
docker stop my-nginx
7、再次启动容器
启动名为 my-nginx
的容器
docker start my-nginx
8、进入 Nginx 容器
进入名为 my-nginx
的容器:
docker exec -it my-nginx /bin/bash
9、删除容器
删除名为 my-nginx
的容器:
docker rm my-nginx
如果容器正在运行,可以使用 -f
参数强制删除:
docker rm -f my-nginx