当前位置: 首页 > news >正文

CentOS安装Docker,Ubuntu安装Docker,Docker解决方案

文章目录

  • CentOS7安装Docker
  • Ubuntu
  • 修改Docker镜像源
  • docker设置容器自动启动
      • 启动时加--restart=always
      • 如果已经过运行的项目
      • docker compose设置容器自启动
  • docker file修改时区
  • docker在容器执行命令
    • 简单粗暴的办法
      • 安装curl
  • docker compose命令
    • 安装docker compose
  • Docker WEB 图形化
  • Jenkins 无法执行 docker 命令
  • docker 查看某个时间段的日志

CentOS7安装Docker

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo systemctl enable --now docker 

# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

Ubuntu

# 安装依赖
apt-get install ca-certificates curl gnupg lsb-release

# 添加Docker官方GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加Docker的软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# 安装Docker
apt-get install docker-ce docker-ce-cli containerd.io -y

# 开启Docker服务
systemctl enable --now docker


修改Docker镜像源

# 写入配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
    	"https://docker-0.unsee.tech",
        "https://docker-cf.registry.cyou",
        "https://docker.1panel.live"
    ]
}
EOF

# 重启docker服务
systemctl daemon-reload && systemctl restart docker


docker设置容器自动启动

启动时加–restart=always

docker run -tid --name isaler_v0.0.11 -p 8081:8080 --restart=always -v /alidata/iDocker/run/projectImages/isaler/v0.0.11/log:/usr/local/tomcat/logs isaler_v0.0.11
 
 
Flag	Description
no		不自动重启容器. (默认value)
on-failure 	容器发生error而退出(容器退出状态不为0)重启容器
unless-stopped 	在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always 	在容器已经stop掉或Docker stoped/restarted的时候才重启容器

如果已经过运行的项目

如果已经启动的项目,则使用update更新:

docker update --restart=always isaler_v0.0.11

–restart参数

--restart参数=
	no
		默认策略,在容器退出时不重启容器
	on-failure
		在容器非正常退出时(退出状态非0),才会重启容器
	on-failure:3
		在容器非正常退出时重启容器,最多重启3次
	always
		在容器退出时总是重启容器
#开机自启
	unless-stopped
		在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
# 一般推荐使用always参数
	--restart=always

docker compose设置容器自启动

docker-compose的配置文件是一个.yml格式的文件
第一部分
version: "3"  #指定语法的版本
第二部分
services:     #定义服务
  nginx:      #服务的名称,-p参数后接服务名称
    container_name: web-nginx    #容器的名称
    image: nginx:latest          #镜像
    restart: always				#设置开机自启
    ports:                       #端口映射
      - 80:80
第三部分
volumes:       #物理机与容器的磁盘映射关系
    - ./webserver:/webserver
    - ./nginx/nginx.conf:/etc/nginx/nginx.conf


docker file修改时区

Centos

RUN rm -rf /etc/localtime
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo Asia/shanghai >> /etc/timezone
RUN echo "export TZ='CST-8' " >> /etc/profile
RUN source /etc/profile

Ubuntu

ENV TZ=Asia/Shanghai 
RUN echo "${TZ}" > /etc/timezone \ 
&& ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \ 
&& apt update \ 
&& apt install -y tzdata \ 
&& rm -rf /var/lib/apt/lists/*

Debian

ENV TZ=Asia/Shanghai

参考链接:

https://juejin.cn/post/7082670118257295391



docker在容器执行命令

宿主机安装

yum install util-linux
# 1、找到容器的pid     docker inspect -f "{{.State.Pid}}" bb4cdc8cf836
[root@txy201-51 ~]# docker inspect test-nsenter -f "{{.State.Pid}}"
7327
# 2、使用nsenter进入这个命名空间
[root@txy201-51 ~]# nsenter -t 7327 -n

简单粗暴的办法

docker cp /usr/sbin/ss c91f37f68301:/usr/sbin/ss

安装curl

docker ps |grep excel-cell-data-import |awk '{print $1}' |head -1
# 修改容器ID,然后按顺序执行
ContainerID=da1c1842d2d6
docker cp /usr/bin/curl $ContainerID:/usr/bin/curl
#docker cp /lib64/libcurl.so.4 $ContainerID:/usr/lib64/

docker cp /lib64/libcurl.so.4 $ContainerID:/lib64/
docker cp /lib64/libc.so.6 $ContainerID:/lib64/

docker cp  /usr/lib64 $ContainerID:/
export LD_LIBRARY_PATH=/usr/lib64/
export LD_LIBRARY_PATH=/lib64/



docker exec -ti $ContainerID /bin/bash


docker compose命令

安装docker compose



Docker WEB 图形化

使用portainer图形化

docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ce

持久化的数据目录为/data

持久化的web 页面目录为 /public



Jenkins 无法执行 docker 命令

# 把 Jenkins 加入 docker 组
usermod -a -G docker jenkins


docker 查看某个时间段的日志

docker logs -t  --since '2022-05-16T15:13:05.999999999'  --until='2022-05-16T17:00:05.999999999' machexec_container
 
 
        
    -t 显示时间戳
    --since 显示自某个timestamp之后的日志
    --until 显示自某个timestamp之前的日志

相关文章:

  • 001 SpringCloudAlibaba整合 - Nacos注册配置中心、Sentinel流控、Zipkin链路追踪、Admin监控
  • LeapMotion第2代 Unity示范代码(桌面开发)
  • 快速幂(算法)的原理
  • SQLMesh系列教程-2:SQLMesh入门项目实战(下篇)
  • 【银河麒麟高级服务器操作系统】服务器卡死后恢复系统日志丢失-分析及处理全过程
  • gitee 配置密钥key过程
  • 通过内网穿透ssh实现远程对家里的linux进行终端操作和编程
  • 20250213编译飞凌的OK3588-C_Linux5.10.209+Qt5.15.10_用户资料_R1
  • Java 同步锁性能的最佳实践:从理论到实践的完整指南
  • SQLite数据库中查询性能优化及索引创建的原则总结
  • Cesium for Unity Linux版本
  • 在 ARM64 架构系统离线安装 Oracle Java 8 全流程指南
  • 2025.2.8——一、[护网杯 2018]easy_tornado tornado模板注入
  • Quartz定时任务
  • 支持直接升级到21c的 Oracle 数据库版本
  • QT中线程中使用信号和槽传数据
  • 阿里云一键部署DeepSeek-V3、DeepSeek-R1模型
  • Oracle DBA 诊断及统计工具-2
  • django中间件,中间件给下面传值
  • vue基础(八)
  • 马上评|独生子女奖励不能“私了”,政府诚信是第一诚信
  • 中国医药科技出版社回应发布“男性患子宫肌瘤”论文:正在核查
  • 科普|治疗腰椎间盘突出症,筋骨平衡理论如何提供新视角?
  • 超越关税陷阱,不遗余力塑造产业的长期竞争力
  • 各地各部门贯彻落实习近平总书记重要指示精神坚决防范遏制重特大事故发生
  • 美国警方:爱达荷州交通事故致7人死亡,8名伤者预计无生命危险