CentOS上使用命令安装Docker

Docker官方文档:https://docs.docker.com/engine/install/centos/

卸载旧版本

较旧的Docker版本称为dockerdocker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装方法

设置存储库
安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

安装最新版本的Docker Engine容器

sudo yum -y install docker-ce docker-ce-cli containerd.io

启动docker

sudo systemctl start docker

通过运行hello-world 映像来验证是否正确安装了Docker Engine

sudo docker run hello-world

在这里插入图片描述
查看docker版本

docker -v

更换docker镜像源

阿里云镜像服务
在这里插入图片描述
使用阿里云官方提供的命令

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["你的镜像加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

查看加速器是否已切换

[root@mayuhui ~]# docker info
Client:
 Debug Mode: false

Server:
 Containers: 2
  Running: 0
  Paused: 0
  Stopped: 2
 Images: 1
 Server Version: 19.03.13
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8fba4e9a7d01810a393d5d25a3621dc101981175
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-514.26.2.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 1.796GiB
 Name: mayuhui
 ID: FJE4:F2OF:TJ5E:PFIT:ZJ6W:QAN7:GSRD:DIRO:X2CR:XU5Y:N32W:NCGG
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  # 替换成功之后这里会显示你的阿里云镜像加速地址
 Live Restore Enabled: false
设置docker开启自启

查看已启动的服务

systemctl list-units --type=service

查看是否设置开机启动

systemctl list-unit-files | grep enable

设置开机启动

systemctl enable docker.service
# 或者
systemctl enable docker

关闭开机启动

systemctl disable docker.service
# 或者
systemctl disable docker

docker容器设置自动启动

# 创建容器时添加--restart=always
docker run --name 自定义名称 -p 宿主机端口:容器端口 --restart=always -d 镜像名称

# 如果已经启动的项目,则使用update更新:
docker update --restart=always 容器名
<think>嗯,用户的问题是想要解决Chrome浏览器强制设置SameSite=Lax的问题。我需要先理解SameSite属性的作用以及为什么Chrome默认设置为Lax会导致问题SameSite是用于控制Cookie站请求中是否发送的属性,有三个值:Strict、Lax和None。默认设置为Lax的话,某些站请求的Cookie不会被发送,比如POST请求站的情况,这可能会导致用户登录状态无法维持等问题。 根据用户提供的引用,特别是引用[1]提到Chrome在2020年2月更改了默认行为,需要显式设置SameSite=None和Secure标志。但Safari对此可能有兼容性问题。引用[2]提到临时解决方案是禁用SameSite默认设置,通过chrome://flags里的设置。不过这可能不适用于所有版本,尤其是较新的Chrome版本可能移除了这个选项。引用[4]给出了通过Chrome扩展修改请求头的方法,添加拦截器来设置Cookie。引用[5]关于缓存的知识可能不直接相关,但需要考虑缓存可能影响测试结果。 用户的需求是解决强制SameSite=Lax的问题,可能的场景是开发或测试环境中需要站携带Cookie,比如本地开发时的不同端口或名,或者第三方服务集成。解决方案需要覆盖不同情况,包括临时本地调整、服务器端设置和浏览器配置。 首先,需要检查服务器是否正确设置SameSite=None和Secure。因为如果Cookie未正确配置,即使浏览器允许,也不会发送。然后,对于本地测试,可以暂时禁用SameSite限制,但Chrome的高版本可能不再支持flag设置,所以需要确认用户的具体版本。如果无法通过flags调整,可能需要使用扩展程序来修改请求头,如引用[4]中的方法。此外,请求还需要CORS配置,如Access-Control-Allow-Origin等头信息,避免其他问题。 另外,需要考虑Secure标志,即Cookie必须通过HTTPS传输,本地开发可能需要配置SSL。如果用户是在生产环境,可能需要确保所有Cookie都正确设置SameSite=None和Secure,并且服务端支持HTTPS。对于旧版浏览器或Safari,可能需要额外的处理,因为某些版本可能不兼容SameSite=None。 总结解决方案步骤:1. 服务器端正确设置Cookie属性;2. 本地浏览器调整flags或使用扩展;3. 确保HTTPS和CORS配置正确。此外,需要提醒用户这些方法适用于不同环境,生产环境中应优先服务器端配置,而开发和测试可能需要临时调整浏览器设置。</think>### 分步解决方案:Chrome 浏览器 SameSite=Lax 强制问题 #### 1. **理解问题背景** Chrome 默认将 Cookie 的 `SameSite` 属性设置为 `Lax`,限制了站点请求携带 Cookie 的权限,导致部分场景(如 POST 请求、第三方服务嵌入)无法正常传递 Cookie[^1]。例如: - 登录状态失效 - 第三方支付/登录插件异常 - 本地开发环境(不同端口或名)接口请求失败 --- #### 2. **服务器端解决方案** **核心逻辑**:通过服务端显式声明 Cookie 的 `SameSite=None` 和 `Secure` 属性。 **步骤**: 1. **修改 Cookie 响应头** 在服务器返回的 `Set-Cookie` 头中添加以下参数: ```http Set-Cookie: session_id=abc123; SameSite=None; Secure ``` - `Secure` 要求 Cookie 必须通过 HTTPS 传输 - `SameSite=None` 允许站请求携带 Cookie 2. **验证 HTTPS 配置** 确保网站已启用 HTTPS(本地开发可通过自签名证书实现)。 --- #### 3. **客户端临时调整方案** **场景**:本地开发测试或无法修改服务端配置时。 **方法一(适用于旧版 Chrome <96)**: 1. 访问 `chrome://flags/#same-site-by-default-cookies` 2. 将 `SameSite by default cookies` 和 `Cookies without SameSite must be secure` 设置为 **Disabled**[^2] **方法二(新版 Chrome)**: 通过浏览器插件强制修改请求头: 1. 安装扩展 [Requestly](https://chrome.google.com/webstore/detail/requestly-modify-headers/mdnleldcmiljblolnjhpnblkcekpdkpa) 2. 添加规则:在请求头中插入 `Cookie: [原有Cookie值]` ```json { "headers": [{ "header": "Cookie", "operation": "append", "value": "session_id=abc123" }], "requestUrl": "example.com" } ``` --- #### 4. **代码层兼容处理** **场景**:需要兼容 Safari 或旧版浏览器时。 **解决方案**: 在发送请求时显式添加 `credentials: "include"` 参数(需配合 CORS 配置): ```javascript fetch('https://api.example.com', { method: 'POST', credentials: 'include' // 强制携带 Cookie }); ``` --- #### 5. **验证与调试** 1. 打开 Chrome 开发者工具(F12),进入 **Application > Storage > Cookies** 2. 检查目标 Cookie 是否包含 `SameSite=None; Secure` 3. 在 **Network** 标签页查看请求头中是否携带 Cookie --- ### 常见问题补充 - **Safari 兼容性问题**:部分 Safari 版本会忽略 `SameSite=None`,需降级为 `SameSite=Unspecified`[^1] - **企业级部署**:通过组策略强制修改 Chrome 默认配置(需管理员权限)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值