docker
docker原理流程
docker安装
卸载旧版
首先如果系统中已经存在旧的Docker,则先卸载:
1 | yum remove docker \ |
配置Docker的yum库
首先要安装一个yum工具
1 | yum install -y yum-utils |
安装成功后,执行命令,配置Docker的yum源:
1 | yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo |
这里安装过程如果报错Error downloading packages: containerd.io-1.6.27-3.1.el7.x86_64: [Errno 256] No more mirrors to try.
可以重新配置源:
1 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker
最后,执行命令,安装Docker
1 | yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin |
启动和校验
1 | # 启动Docker |
配置镜像加速
具体命令如下:
1 | # 创建目录 |
docker中安装mysql
1 | docker run -d \ |
docker常见命令
进入到容器中,模拟了一个虚拟机
docker exec -it nginx bash
docker数据卷
这里的docker run创建数据卷挂载需要创建容器时就要进行
例如:docker run -d –name nginx -p 80:80 -v html:/usr/share/nginx/html nginx
html是数据卷的名字,/usr/share/nginx/html是nginx容器内的路径
可以使用docker volume inspect html查看其挂载到宿主机中的路径
挂载到指定目录
1 | docker run -d \ |
需要提前在/root/mysql/init中放入sql文件;在/root/mysql/conf放入cnf
dockerfile
自定义镜像
上传jdk.tar
docker加载该压缩包:
1
docker load -i jdk.tar
docker build -t docker-demo .
> >1
2
3
4
5
6
7
8
9
10
11
12
13
> 这一步最后的.执行同目录下的dockerfile文件,文件内容如下:
>
> ```bash
> # 基础镜像
> 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"]
镜像建立完毕,可以利用该镜像建立容器
docker run -d --name dd -p 8080:8080 docker-demo
1
2
3
4
5
6
7
8
9
10
11
12
13
<img src="https://s2.loli.net/2024/01/27/NqWMSQUJ6ReZKmT.png" alt="image-20240124145540738" style="zoom:67%;" />
#### 自定义网络

- 创建一个网段
```bash
docker network create heima查看网络,出现以下内容:
1
2
3
4
5NETWORK ID NAME DRIVER SCOPE
311693af612c bridge bridge local
0781a864bf35 heima bridge local
e939b148e85a host host local
daf3260b0528 none null local将容器mysql加入到刚才新创建的网段heima中
1
docker network connect heima mysql
也可以直接在创建容器时设置网段:
1
docker run -d --name dd -p 8080:8080 --network heima docker-demo
部署java应用
将java项目打包成jar包,将对应的jar包和dockerfile文件上传到同一目录下
在这个目录下,创建镜像
1
docker build -t hmall
可查看镜像
1
docker images
创建容器
1
docker run -d --name hm -p 8080:8080 --network heima hmall
network配置heima网段,mysql也在里面
hmall为镜像名称
根据后端接口在浏览器访问即可访问到mysql中的数据
DockerCompose
g
dockerCompose命令格式
可以将所有的文件放在同一目录下,这样直接使用相对路径
1 docker compose up -d一键部署
dockercompose配置文件示例
1 | version: "3.8" |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 SquaneBlog!
评论