|
|
@@ -0,0 +1,55 @@
|
|
|
+下面是从创建 Dockerfile 到在另一台服务器上启动容器的完整步骤: 1. 创建 Dockerfile 首先,在本地(原始服务器)创建一个名为 Dockerfile 的文件,内容如下: dockerfile Copy Edit FROM ubuntu:18.04
|
|
|
+
|
|
|
+# 更新包并安装必要工具
|
|
|
+RUN apt update && apt install -y openssh-server net-tools
|
|
|
+
|
|
|
+# 创建 SSH 服务工作目录
|
|
|
+RUN mkdir /var/run/sshd
|
|
|
+
|
|
|
+# 设置 root 密码
|
|
|
+RUN echo 'root:password123' | chpasswd
|
|
|
+http://60.204.139.57:13000/xuxinyi/note.git
|
|
|
+# 允许 root 用户通过 SSH 登录
|
|
|
+RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
|
|
|
+
|
|
|
+# 开放常见端口
|
|
|
+EXPOSE 22 80 443 3306 6379 5432
|
|
|
+
|
|
|
+# 启动 SSH 服务
|
|
|
+CMD ["/usr/sbin/sshd", "-D"]
|
|
|
+2. 构建 Docker 镜像 在 Dockerfile 文件所在的目录中运行以下命令,构建镜像: bash Copy Edit
|
|
|
+ docker build -t gogs .
|
|
|
+ 这将创建一个名为 gogs 的镜像。
|
|
|
+
|
|
|
+3. 保存 Docker 镜像为 TAR 文件 将构建的 Docker 镜像保存为一个 .tar 文件,以便传输到另一个服务器: bash Copy Edit
|
|
|
+ docker save -o gogs.tar gogs
|
|
|
+
|
|
|
+ 这会将 gogs 镜像保存为 gogs.tar 文件。
|
|
|
+
|
|
|
+4. 将 TAR 文件传输到另一个服务器 使用 scp 或其他传输工具,将 gogs.tar 文件传输到目标服务器。假设目标服务器的 IP 地址为 192.168.1.2,命令如下: bash Copy Edit
|
|
|
+ scp gogs.tar root@192.168.1.2:/root/123
|
|
|
+
|
|
|
+5. 在目标服务器上加载 Docker 镜像 登录到目标服务器并加载传输过来的 Docker 镜像: bash Copy Edit
|
|
|
+ docker load -i /root/123/gogs.tar
|
|
|
+ 这将从 gogs.tar 文件中加载 Docker 镜像。
|
|
|
+
|
|
|
+6. 启动容器 使用以下命令启动容器,并映射必要的端口(例如 22 端口映射到 10022): bash Copy Edit
|
|
|
+ docker run -d -p 10022:22 -p 10080:80 -p 10443:443 -p 12206:3306 -p 15432:5432 --name gogs-container gogs
|
|
|
+ 该命令将启动容器 gogs-container,并将容器内的端口映射到主机的端口。
|
|
|
+
|
|
|
+7. 验证容器是否启动 运行以下命令查看容器是否已启动: bash Copy Edit
|
|
|
+ docker ps
|
|
|
+ 您应该能够看到容器正在运行并且端口已经映射。
|
|
|
+
|
|
|
+8. 访问容器 • 使用 SSH 连接到容器内,端口 10022 对应于容器的 22 端口: bash Copy Edit
|
|
|
+ ssh root@<目标服务器IP> -p 10022
|
|
|
+ 使用设置的密码 password123 进行登录。
|
|
|
+
|
|
|
+9. 检查容器内的 SSH 服务 进入容器内并检查 SSH 服务是否运行正常: bash Copy Edit
|
|
|
+ docker exec -it gogs-container bash
|
|
|
+ ps aux | grep sshd
|
|
|
+ 如果服务未启动,您可以手动启动: bash Copy Edit service ssh start
|
|
|
+
|
|
|
+10. 检查网络连接 验证容器内的网络配置是否正常: bash Copy Edit docker exec -it gogs-container netstat -tuln
|
|
|
+ 这将列出所有正在监听的端口。 11. 查看容器日志 如果有问题,您可以查看容器日志,以便进一步排查问题: bash Copy Edit docker logs gogs-container
|
|
|
+ 总结 1. 创建并构建 Docker 镜像,然后保存为 .tar 文件。 2. 将 .tar 文件传输到目标服务器。 3. 在目标服务器上加载并启动容器,通过端口映射使得服务可访问。 4. 登录容器并检查服务状态,确保 SSH 和其他服务正常运行。 通过这些步骤,您可以将 Docker 容器从一台服务器迁移到另一台服务器,并正常运行。
|