Docker
安装
在线安装:
sudo yum -y install docker-ce docker-ce-cli containerd.io
具体可参考大神文档(本人未验证…)
转载链接: https://blog.csdn.net/m0_59196543/article/details/124749175
离线安装:
# 如果没有unzip,下载unzip-6.0-19.el7.x86_64.rpm包
rpm –ivh unzip-6.0-19.el7.x86_64.rpm
#解压
unzip soft.zip
cp -r ./soft/rpm /tmp
sudo yum -y install --noplugins --disablerepo=\* --enablerepo=docker -c ./soft/docker.repo docker-ce docker-ce-cli containerd.io
rm -rf /tmp/rpm
#启动docker 设置开机启动
sudo systemctl start docker
sudo systemctl enable docker
#如果启动保存,可以尝试关闭防火墙
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
#查看是否关闭防火墙
systemctl status firewalld
#如果不是root用户安装,添加当前用户到 docker 组
sudo usermod -aG docker 安装用户名
docker离线包soft.zip
查看镜像信息
docker images
REPOSITORY(仓库名) TAG(版本) IMAGE ID(镜像id) CREATED(创建时间) SIZE(大小)
查看容器信息
docker ps
CONTAINER ID(容器id) IMAGE (镜像名:版本) COMMAND(运行容器时的命令) CREATED(创建时间) STATUS(容器的运行状态) PORTS(容器开放的端口信息) NAMES(容器的别名)
导入和导出镜像
# docker load 导入镜像库存储文件到本地镜像库,镜像存储文件将保存完整记录。与docker save 导出镜像为文件对应使用。
docker load < images.tar
docker save 镜像id -o images.tar
#
# docker import 导入一个容器快照到本地镜像库,容器快照将会丢弃所有的历史记录和元数据信息.与docker export导出容器为文件对应使用。
docker import images.tar images:版本号
docker export -o images.tar 容器id
如果想保存容器中的修改,需要先将容器commit为镜像,再save
docker commit 容器id 镜像名:版本
docker save -o images.tar 镜像名:版本
docker load < images.tar
启动容器相关
创建docker容器间通信网络
# 可以在宿主机的端口有各种访问限制的环境下使用,创建一个容器间共用的网络,之后通过容器名来访问彼此。例如:
docker network create {自定义网络名}
# run时添加参数 --network {自定义网络名}
docker run -it -d --name java --network {自定义网络名} -p 10000:10000 java bash
docker run -p 80:80 --name nginx --network {自定义网络名} -d nginx
docker run -d -it --name python --network {自定义网络名} -p 10001:10001 python /bin/bash
# nginx的配置文件编写
---
location /java/ {
proxy_pass http://java:10000/java/;
}
location /python/ {
proxy_pass http://python:10001/python/;
}
---
保证docker容器能够访问使用宿主机IP
#方法一
# 一般使用在需要license等IP校验的环境
#在run命令中添加参数 -v /proc:/hostip/:ro
docker run -it -d --name java -p 10000:10000 -v /proc:/hostip/:ro java bash
#方法二
#使用参数 --network host ,这个模式需要占用宿主机对应的端口访问权限
docker run -it -d --name java --network host -p 10000:10000 java bash
宿主机数据文件或者目录,绑定容器
#在run命令中添加参数 -v 宿主机绝对路径目录:/容器内目录
docker run -it -d --name java -p 10000:10000 -v /data:/opt java bash
#一般情况下,可以通过参数,打开root的权限 --privileged=true
docker run --privileged=true -it -d --name java -p 10000:10000 -v /data:/opt java bash
容器启动后,自动执行命令
#在run命令中添加参数 -c ""
docker run --privileged=true -it -d --name java -p 10000:10000 -v /data:/opt java /bin/bash -c "cd /opt/java && java -jar java.jar "
容器自启动
#添加参数 --restart=always
docker run --privileged=true --restart=always -it -d --name java -p 10000:10000 -v /data:/opt java /bin/bash -c "cd /opt/java && java -jar java.jar "
容器日志查看
docker logs [OPTIONS] 容器名
# OPTIONS可选 :-f : 跟踪日志输出 --since :显示某个开始时间的所有日志 -t : 显示时间戳 --tail :仅列出最新N条容器日志
查看容器的元数据信息
docker inspect 容器名或镜像名