1.命令解读
docker run -d
解释:创建并运行一个容器,-d则是让容器以后台进程运行
--name mysql
解释: 给容器起个名字叫mysql
-p 3306:3306
解释:-p 宿主机端口:容器内端口,设置端口映射
注意:
1、容器是隔离环境,外界不可访问。但是可以将宿主机端口映射容器内到端口,当访问宿主机指定端口时,就是在访问容器内的端口了
2、容器内端口往往是由容器内的进程决定,例如MySQL进程默认端口是3306,因此容器内端口一定是3306;而宿主机端口则可以任意指定,一般与容器内保持一致
-e TZ=Asia/Shanghai
解释:配置容器内进程运行时的一些参数,-e KEY=VALUE,KEY和VALUE都由容器内进程决定
mysql
解释: 设置镜像名称,Docker会根据这个名字搜索并下载镜像,REPOSITORY:TAG,例如mysql:8.0,其中REPOSITORY可以理解为镜像名,TAG是版本号
注意:在未指定TAG的情况下,默认是最新版本,也就是mysql:latest
2.常见命令
命令关系:
补充:
默认情况下,每次重启虚拟机我们都需要手动启动Docker和Docker中的容器。通过命令可以实现开机自启
# Docker开机自启
systemctl enable docker
# Docker容器开机自启
docker update --restart=always [容器名/容器id]
3.命令别名
查看设置命令:
# 修改/root/.bashrc文件
vi /root/.bashrc
别名生效命令:
source /root/.bashrc
二、数据卷
数据卷(volume)是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。
注意:
1.在执行docker run命令时,使用-v 数据卷:容器内目录 可以完成数据卷挂载
2.在创建容器时,如果挂载了数据卷且数据卷不存在,则会自动创建数据卷
3.在执行docker run命令时,使用-v 本地目录:容器内目录 可以完成本地目录挂载
相关操作:
4.Dockerfile
由于制作镜像的过程中,需要逐层处理和打包,比较复杂,所以Docker就提供了自动打包镜像的功能。我们只需要将打包的过程,每一层要做的事情用固定的语法写下来,交给Docker去执行即可。
示例:
# 基础镜像
FROM openjdk:11.0-jre-buster
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY docker-demo.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]
5.构建镜像
构建镜像:
# 进入镜像目录
cd /root/demo
# 开始构建
docker build -t docker-demo:1.0 .
注意:.代表当前目录
6.网络
常见命令: