1、镜像和容器
当我们利用 Docker 安装应用时,Docker 会自动搜索并下载应用 镜像(image)。镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker 会在运行镜像时创建一个隔离环境,称为 容器(container)。
镜像仓库:存储和管理镜像的平台。
2、常用命令简介
Docker 最常见的命令就是操作镜像、容器的命令,详见 官方文档。
- 单独下载镜像
docker pull
- 查看下载的镜像
docker images
- 删除不需要的镜像
docker rmi
- 自定义镜像,首先自定义一个 dockerfile 文件,通过
docker build
构建 - 分享自定义镜像,可通过
docker save
保存到本地 - 获取到自定义镜像后,可通过
docker load
加载到自己的本地镜像中 - 常用
docker push
将自定义镜像推到镜像仓库,其他人就可通过docker pull
直接下载使用 - 创建并运行容器
docker run
- 停止运行中的容器
docker stop
- 启动容器
docker start
- 查看容器运行状态
docker ps
- 删除不需要的容器
docker rm
- 查看容器日志
docker log
- 进入容器内部执行一些操作
docker exec
3、帮助命令
# docker 版本信息
docker version # docker -v
# docker 详细信息
docker info
# docker 命令的帮助文档
docker [命令] --help
# docker状态
systemctl status docker
# 启动Docker
systemctl start docker
# 停止Docker
systemctl stop docker
# 重启
systemctl restart docker
# 设置开机自启
systemctl enable docker
4、实践:安装 MySQL
运行如下命令:
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
mysql
- docker run:创建并运行一个容器,-d 是让容器在后台运行
- –name mysql:给容器起个名字,必须唯一
- -p 3306:3306:端口映射。宿主机端口映射到容器内端口(左侧宿主机端口,右侧容器内端口)
- -e KEY=VALUE:设置环境变量
- mysql:指定运行的镜像名字
● 镜像命名规范
- 镜像名称一般分成两部分组成:[repository]:[tag]
- repository:镜像名
- tag:镜像版本
- 没有指定 tag 时,默认是 latest,代表最新版本的镜像
上面的命令就是下载最新的mysql镜像。
如果要指定 mysql8.0 的话就做如下变动:
docker run -d --name mysql8 -p 3307:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123 mysql:8.0
● 进入MySQL8
# 进入mysql8容器并提供一个交互式 shell
docker exec -it mysql8 bash
# 直接进入mysql8容器并执行登录命令(省略进入交互式shell的步骤)
docker exec -it mysql8 mysql -uroot -p
退出则是永远的 exit
5、命令别名
由于像 docker ps
输出的内容比较多,如果我们只想看到我们关心的内容,就需要做定制。
像 docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
这种,但是每次输入这么长的命令属实麻烦,我们就可以创建命令别名来代替这一大串组合命令。
进入root下的 .bashrc文件 vim ~/.bashrc
,格式与下图一致,最后一个 mdps 就是自定义的命令别名,用来代替上面一大串的代码,修改完毕后退出并运行 source ~/.bashrc
让其生效。