Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
LearnHub
docker
提交
25e28b2e
docker
项目概览
LearnHub
/
docker
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
docker
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
25e28b2e
编写于
12月 06, 2022
作者:
hexiang@
😀
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update README.md
上级
92f83313
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
222 addition
and
15 deletion
+222
-15
README.md
README.md
+222
-15
未找到文件。
README.md
浏览文件 @
25e28b2e
...
...
@@ -2,13 +2,13 @@
> windows安装docker服务
## 环境
工具
下载
## 环境下载
-
[
Docker Desktop Installer.exe
](
https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe
)
(windows 环境下运行docker的一款产品)
-
[
wsl_update_x64
](
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
)
(Linux 内核包)
## 开启
相关
配置
## 开启配置
-
打开任务管理器(Ctrl+Alt+Delete)-> 选择性能 -> CPU ->虚拟化,确认是否已启用
-
开启 Hyper-v,在控制面板打开
**程序**
,然后点击
**启动或关闭windows功能**
,找到勾选Hyper-v点击确定
...
...
@@ -23,7 +23,7 @@ del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
```
##
开始安
装服务
##
安装
装服务
-
先安装
**wsl_update_X64.msi**
,一路下一步next即可完成安装
...
...
@@ -42,9 +42,56 @@ Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /AL
]
```
#
Docker for Linux
#
# 远程访问
## Linux服务器离线安装
-
在DockerDesktop⚙的General中勾选
`Expose daemon on tcp://localhost:2375 without TLS`
(也只是开启localhost/127.0.0.1端口2375的监听)
-
在Docker Engine添加host,然后apply and restart
```
dockerfile
"hosts": ["tcp://0.0.0.0:2375"]
```
这里按理来说确实是可以监听任何ip的2375端口,但实际上却无法实现远程访问!因为windows环境下的Docker是运行在Hyper-v的虚拟机中或者是wsl windows子系统中,这些虚拟机和宿主机是NAT方式连接的,宿主机的物理网络和虚拟机网是不在同一子网中。因此
**在上面两步的基础上**
,还需要解决虚拟机和宿主机网络不在同一子网的问题。
解决虚拟机与宿主机不在同一子网上时通过宿主机ip访问docker守护进程方法:需要在宿主机设置代理监听本地127.0.0.1:2375。
参考文档说明🔗:
[
Configuring the Docker Engine to Listen to the TCP Socket - IBM Documentation
](
https://www.ibm.com/docs/en/addi/6.1.0?topic=prerequisites-configuring-docker-engine-listen-tcp-socket
)
-
在CMD(管理员模式)中执行命令
```
shell
#替换 <your_IP>为 docker主机的公网IP地址
netsh interface portproxy add v4tov4
listenport
=
2375
listenaddress
=
<your_IP>
connectaddress
=
127.0.0.1
connectport
=
2375
```
-
验证,输入以下命令,有内容返回输出即可
```
shell
curl your公网IP:2375/version
```
⚠注意宿主机使用本机ip可以访问,但其他机器访问宿主机ip不通的,则需要在windows防火墙开放端口,防火墙配置中,入站和出站都需要开放2375端口!
❗如果远程端口开放的设置代理无效或者windows重启后失效,需要检查IP Help服务正常运行,重启该服务即可。建议将其设为自动启动。
❗除了使用netsh命令添加代理,也可以在宿主机上使用nginx转发127.0.0.1:2375,nginx配置文件nginx.conf添加如下配置,在/etc/nginx/conf.d/中,修改default.conf文件
```
nginx
# stream与http配置同级
stream
{
server
{
listen
2375
;
proxy_pass
127.0.0.1
:
2375
;
}
}
```
# Docker for Linux
> ⚠ **以下所有操作均以root管理员身份操作!**
## 离线安装
下载docker安装包,版本根据自己开发需要进行选择!
...
...
@@ -84,7 +131,8 @@ Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=10.58.20.199
# ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1 -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd --graph /data/dockerdata --selinux-enabled=false -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
...
...
@@ -108,8 +156,6 @@ StartLimitInterval=60s
WantedBy=multi-user.target
```
⚠其中
`ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=10.51.150.122`
,
`10.51.150.122`
是服务器ip地址,安装部署的时候注意修改这个!!!
-
添加文件权限
```
shell
...
...
@@ -124,32 +170,193 @@ systemctl daemon-reload
-
启动docker
```
```
shell
systemctl start docker
```
-
设置开机自启
```
shell
systemctl
enable
docker.service
```
## 在线安装
-
关闭selinux安全服务
```
sh
vi /etc/sysconfig/selinux
```
-
把其中的
`selinux`
设置为
`disabled`
如果之前安装过旧版本的Docker,可以使用下面命令卸载:
```
shell
yum remove docker
\
docker-client
\
docker-client-latest
\
docker-common
\
docker-latest
\
docker-latest-logrotate
\
docker-logrotate
\
docker-selinux
\
docker-engine-selinux
\
docker-engine
\
docker-ce
```
-
更新yum源
```
shell
yum update
```
-
首先
**需要虚拟机联网**
,安装yum工具
```
shell
yum
install
-y
yum-utils
\
device-mapper-persistent-data
\
lvm2
--skip-broken
```
-
然后更新本地镜像源:
```
shell
# 设置docker镜像源
yum-config-manager
\
--add-repo
\
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
```
-
更新yum索引
```
shell
yum makecache fast
```
-
然后输入命令:
```
shell
yum
install
-y
docker-ce
```
docker-ce为社区免费版本。稍等片刻,docker即可安装成功!
Docker应用需要用到各种端口,逐一去修改防火墙设置以及开放端口,非常麻烦,因此建议大家在学习阶段可以直接关闭防火墙!
```
sh
# 关闭防火墙
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
```
-
通过命令启动docker:
```
sh
systemctl start docker
# 启动docker服务
systemctl stop docker
# 停止docker服务
systemctl restart docker
# 重启docker服务
```
-
然后输入命令,可以查看docker版本:
```
shell
docker
-v
```
-
设置开机自启
```
shell
systemctl
enable
docker.service
```
⚠docker默认的路径/var/lib/docker,如果这个路径下磁盘空间不够大,经常使用容器的话空间很快就会满了,因此需要修改路径,放到一个空间大一点的路径
-
关闭开机自启
```
shell
systemctl disable docker.service
```
-
修改
## 镜像配置
```
shell
vi /etc/
systemd/system/docker.service
vi /etc/
docker/daemon.json
```
在
`ExecStart=/usr/bin/dockerd`
后面加上
`--graph /data/dockerdata`
```
json
{
"registry-mirrors"
:
[
"https://6x1n58x2.mirror.aliyuncs.com"
,
"http://hub-mirror.c.163.com"
,
"https://mirror.baidubce.com"
]
}
```
重启守护进程和docker
```
shell
systemctl daemon-reload
systemctl restart docker
```
/data/dockerdata路径不存在的话,就先建一个(保证磁盘空间够大的路径均可)
## 拓展配置
-
重启守护进程和docker
修改配置
```
shell
vi /etc/systemd/system/docker.service
```
可选拓展内容,在
`ExecStart=/usr/bin/dockerd`
后面加上
-
`--graph /data/dockerdata`
:docker默认的路径/var/lib/docker,如果这个路径下磁盘空间不够大,经常使用容器的话空间很快就会满了,因此需要修改路径,放到一个空间大一点的路径,若/data/dockerdata路径不存在的话,就自己先建一个,这个路径可自定义,保证磁盘空间够大的路径均可!
-
`-H unix:///var/run/docker.sock`
:unix socket,本地客户端将通过这个来连接 Docker Daemon
-
`-H tcp://0.0.0.0:2375`
:tcp socket,表示允许任何远程客户端通过 2375 端口连接 Docker Daemon
重启守护进程和docker
```
shell
systemctl daemon-reload
systemctl restart docker
```
## 远程访问
方式一:关闭防火墙
```
shell
systemctl stop firewalld
systemctl disable firewalld
```
方式二:开放2375端口
```
shell
firewall-cmd
--add-port
=
2375/tcp
--permanent
firewall-cmd
--reload
```
## 创建用户组
安装好docker后,如果之后操作docker不是root用户,则创建用户组方便操作docker,省去操作权限不够的麻烦
```
shell
sudo
groupadd docker
sudo
usermod
-aG
docker
${
USER
}
sudo
systemctl restart docker
```
##
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录