什么是Docker
Docker是一个开源的 应用容器引擎 ,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口.
Docker架构
docker使用客户端-服务器架构。 Docker客户端(client) 与 守护进程(Docker daemon)进行对话,该守护进程 完成了构建、运行和分发 Docker 容器的繁重工作。
安装Docker
1. 检查卸载之前的Docker
检查之前是否安装过docker,如果有使用: yum remove docker
卸载。以下为完整命令:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装yum-utils
安装命令:yum install -y yum-utils
3. 配置阿里云镜像
命令:yum-config-manager —add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4. 更新CentOs
命令:yum update
5. 列出Docker源( 如果需要指定的docker源,在后面加上版本号 )
命令yum list docker-ce —showduplicates | sort -r
6. 安装最新的Docker
命令:yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
7. 检查docker 版本号
命令:docker -v
8. 启动Docker
命令:systemctl start docker
9. 在系统启动时运行docker
命令:systemctl enable docker
Docker容器配置
1. 配置本地镜像库
使用此命令:cat /etc/docker/daemon.json
进入文件,在文件中输入一下命令:
{
"registry-mirrors":["https://ung2thfc.mirror.aliyuncs.com"]
}
2. 配置完后重启Docker
命令:systemctl restart docker
Docker常见问题及解决方案
1. 问题:IPv4 forwarding disabled
问题的描述:
IPv4 forwarding is disabled。网络不能联通。
解决方案:
-
- 用此命令:
vim /etc/sysctl.conf
进入文件, - 在文件的最后段加上次命令:
net.ipv4.ip_forward=1
- 用此命令:
-
- 保存退出:
:wq
- 保存退出:
重启网络
命令:systemctl restart network
2. 问题:容器中没有Linux命令
问题描述:当使用linux命令时,显示“command not found”。
解决方案:
-
- 更新容器中的Linux
命令:apt-get update
-
- 安装程序
命令:apt-get install
Dockerfile
Dockerfile是Docker中用于定义镜像自动化构建流程的配置文件,在Dockerfile中,包含了构建镜像过程中需要执行的命令和其他操作。通过Dockerfile可以更加清晰、明确的给定Docker镜像的制作过程,由于仅是简单、小体积的文件,在网络等介质中传递的速度快,能够更快的实现容器迁移和集群部署。
1. Dockerfile的基本结构
2. Linux服务器配置docker
3. 配置docker remote api
在Linux中配置docke的远程调用接口。
4. 编辑docker.service
用vim命令打开 /lib/systemd/system/docker.service 文件,命令如下:
命令: vim /lib/systemd/system/docker.service
5. 编辑service模块
修改ExecStart的内容:
ExecStart=/usr/bin/dockerd -H fd:// containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
6. 重新加载docker
-
- 重新加载docker的daemon
命令: systemctl daemon-reload
-
- 重新启动docker
命令: systemctl restart docker.service
7. 验证配置
-
- 查询端口2375状态
命令: netstat -nplt | grep 2375
-
- 使用crul测试api
命令: curl http://192.168.200.104:2375/info
8. 开放2375端口
-
- 命令:
firewall-cmd --zone=public--add-port=2375/tcp --permanent
- 命令:
提示: success
-
- 命令:
firewall-cmd --reload
- 命令:
提示: success
9. 下载java镜像
-
- 项目中要依赖java,需要下载java的镜像
下载java版本: anapsix/alpine-java
命令: docker pull anapsix/alpine-java
Idea配置docker插件
1. idea安装docker插件(如果没有安装)
2. Idea配置docker
Spring-boot整合Dockerfile
1. 项目中配置Dockerfile文件
2. 编写Dockerfile文件
FROM anapsix/alpine-java:latest #引用java镜像
EXPOSE 10021 #端口号和application.yml里的一致
ADD target/book-type-1.0-SNAPSHOT.jar /TypeApp.jar
ENTRYPOINT ["java","-jar","/TypeApp.jar"]