提交 25e28b2e 编写于 作者: hexiang@'s avatar hexiang@ 😀

Update README.md

上级 92f83313
......@@ -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.
先完成此消息的编辑!
想要评论请 注册