网站建设公司 跨界鱼科技专业设计专业网站有哪些
- 作者: 五速梦信息网
- 时间: 2026年04月20日 07:50
当前位置: 首页 > news >正文
网站建设公司 跨界鱼科技专业,设计专业网站有哪些,承德最新大新闻,创建app平台需要多少钱目录
安装docker
配置C环境 1#xff09;启动ubuntu:22.04容器 2#xff09;配置编译环境G 3#xff09;安装软件 4#xff09;测试
如何打包容器生成tar#xff1f; a. 生成容器镜像 b. 将镜像压缩成tar
如何将容器内部的端口映射至宿主机#xf…目录
安装docker
配置C环境 1启动ubuntu:22.04容器 2配置编译环境G 3安装软件 4测试
如何打包容器生成tar a. 生成容器镜像 b. 将镜像压缩成tar
如何将容器内部的端口映射至宿主机 a. 使用 -p 选项启动容器并映射端口 b. 验证端口映射 c. 在外部客户端访问服务 我这里将我如何在linux服务器中安装docker以及在容器中配置C环境的步骤以及遇到的一些问题总结如下。 参考 https://www.bilibili.com/video/BV12z4y147y3?vd_sourcecb95e3058c2624d2641da6f4eeb7e3a1www.bilibili.com/video/BV12z4y147y3?vd_sourcecb95e3058c2624d2641da6f4eeb7e3a1https://link.zhihu.com/?targethttps%3A//www.bilibili.com/video/BV12z4y147y3%3Fvd_source%3Dcb95e3058c2624d2641da6f4eeb7e3a1 恋恋风辰官方博客llfc.club/category?catid225RaiVNI8pFDD5L4m807g7ZwmF#!aid/2Suf5jJjQEVKDClYNgIiKV9ipcbhttps://link.zhihu.com/?targethttps%3A//llfc.club/category%3Fcatid%3D225RaiVNI8pFDD5L4m807g7ZwmF%23%21aid/2Suf5jJjQEVKDClYNgIiKV9ipcb Linux系统安装 docker 容器及部署项目blog.csdn.net/weixin_67722778/article/details/139717151编辑https://link.zhihu.com/?targethttps%3A//blog.csdn.net/weixin_67722778/article/details/139717151 解决docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“: net/http: request cancblog.csdn.net/Liiiiiiiiiii19/article/details/142438122编辑https://link.zhihu.com/?targethttps%3A//blog.csdn.net/Liiiiiiiiiii19/article/details/142438122 1. 安装docker 更新软件列表 sudo apt update 安装依赖项以允许使用 HTTPS 通过 APT 获取 Docker sudo apt install -y apt-transport-https ca-certificates curl software-properties-common 添加 Docker 的官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg 将 Docker APT 软件仓库添加到系统中 echo deb [archamd64 signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null 更新软件包列表并安装 Docker CE sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io 验证 Docker 是否已成功安装 sudo docker run hello-world 我这里在前面几步都成功了但到最后一步的时候提示我连接超时如下 我尝试了国内很多镜像源比如阿里云的镜像源但仍然会有这个问题 最后找到解决办法 参考 解决docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“: net/http: request cancblog.csdn.net/Liiiiiiiiiii19/article/details/142438122编辑https://link.zhihu.com/?targethttps%3A//blog.csdn.net/Liiiiiiiiiii19/article/details/142438122 首先打开daemon.json文件 sudo nano /etc/docker/daemon.json 在该文件中写入 {registry-mirrors: [https://docker.registry.cyou, https://docker-cf.registry.cyou, https://dockercf.jsdelivr.fyi, https://docker.jsdelivr.fyi, https://dockertest.jsdelivr.fyi, https://mirror.aliyuncs.com, https://dockerproxy.com, https://mirror.baidubce.com, https://docker.m.daocloud.io, https://docker.nju.edu.cn, https://docker.mirrors.sjtug.sjtu.edu.cn, https://docker.mirrors.ustc.edu.cn, https://mirror.iscas.ac.cn, https://docker.rainbond.cc] } ctrlx保存点yenter退出。 重载系统守护进程并重启 Docker sudo systemctl daemon-reload sudo systemctl restart docker 重新拉取docker hello world sudo docker pull hello-world 启动容器 sudo docker run hello-world 如果输出“Hello from Docker!”那么容器拉取运行成功 2. 配置C环境 该过程参考博主恋恋风辰 恋恋风辰官方博客llfc.club/category?catid225RaiVNI8pFDD5L4m807g7ZwmF#!aid/2Suf5jJjQEVKDClYNgIiKV9ipcbhttps://link.zhihu.com/?targethttps%3A//llfc.club/category%3Fcatid%3D225RaiVNI8pFDD5L4m807g7ZwmF%23%21aid/2Suf5jJjQEVKDClYNgIiKV9ipcb 1启动ubuntu:22.04容器 sudo docker run -itd –name cppubuntu ubuntu:22.04 itd ubuntu:22.04 乌班图版本为22.04 出现这一段内容代表镜像拉取成功输入‘sudo docker ps’查看容器 进入容器复制容器id我这里是‘5d2a7e6c07cb’然后输入 sudo docker exec -it 5d2a7e6c07cb /bin/bash 以bash脚本的方式进入容器查看该系统是什么样的 进入以后用户名发生了改变我之前的用户名是‘yuanwenzhengnwpu232:’但进入容器后是 2配置编译环境G 当前目录下创建一个test子目录 mkdir ./test 容器内更新源安装最新的软件包 apt-get update 配置C编译环境容器内安装gcc/g工具包 apt install build-essential 然后点y确定安装成功 测试安装的版本是否支持C17 echo #include iostream test.cpp 将‘#include iostream’输入至test.cpp并将cpp移动至test文件中 mv ./test.cpp ./test 并cd至test文件中 cd ./test/ 文件中只有test.cpp一个文件 然后将main函数加入至test.cpp文件中将c版本输出 echo int main() { std::cout __cplusplus std::endl; return 0; } test.cpp 使用g编译test.cpp文件c版本为17输入test执行文件 g -stdc17 test.cpp -o test 这里执行test ./test 这里输出‘201703’版本输出成功因为C17是2017年3月制定的标准。 3安装软件 安装vim apt install vim 测试vim输入 vim ./test.cpp vim安装成功 安装wget apt install wget 获取boost库的源码包我这里的boost版本是1.86.0 wget https://archives.boost.io/release/1.86.0/source/boost_1_86_0.tar.gz 如果下载太慢可以将文件下载好上传至宿主机然后在宿主机输入不能在容器内输入 sudo docker cp /home/ubuntu/boost_1_86_0.tar.gz cppubuntu:/test 这里docker容器从路径“/home/ubuntu/boost_1_86_0.tar.gz”copy至“cppubuntu:/test” 安装boost需要的一些库 apt-get install python3-dev autotools-dev libicu-dev build-essential libbz2-dev libboost-all-dev 因为 python-dev 包已经被废弃可以使用 python-dev-is-python3 或 python2-dev 作为替代方案自己选择具体的python版本进行安装我这里选择python3. 解压boost库并安装 首先确保你在当前工作目录下已下载boost库压缩包 然后输入 tar zxvf boost_1_86_0.tar.gz 然后进入boost文件中配置向导预先设置安装目录为usr并安装 cd ./boost_1_86_0 ./bootstrap.sh –prefix/usr/ ./b2 install 安装完成后显示 安装git apt install git 安装成功后进行git初始化 git config –global user.name Qbb git config –global user.email qbbmail.nwpu.edu.cn git init 初始化用户名和邮箱并在当前目录下设置初始化一个新的Git仓库输入下面代码验证初始化是否成功 git config –global user.name git config –global user.email 安装cmke wget https://github.com/Kitware/CMake/releases/download/v3.27.0/cmake-3.27.0.tar.gz 如果安装太慢可以在下载好上传至宿主机然后再宿主机内输入 sudo docker cp /mnt/datab/home/yuanwenzheng/C/cmake-3.27.0.tar.gz cppubuntu:/test 安装必要的ssl库 apt install libssl-dev 解压cmake压缩包 tar -zxvf cmake-3.27.0.tar.gz 解压后进入‘cmake-3.27.0’文件夹内 ./cmake-3.27.0/ 设置引导程序 ./bootstrap make make install 测试 cmake –version 出现该界面说明cmake安装成功 4测试 进入test目录创建一个code并将该目录下所有test文件移除只保留code文件最后进入code文件 mkdir code rm -rf ./test* cd ./code/ 创建一个helloboost.cpp文件并编辑 vim ./helloboost.cpp 键盘点击‘i’进入插入模式粘贴将boost版本输出 #include iostream #include boost/version.hpp using namespace std; int main() {cout Boost 版本 BOOST_VERSION endl;return 0; } 然后点击esc输入‘:wq’保存退出文件 使用g编译该文件生成helloboost 执行文件 g -o helloboost ./helloboost.cpp 执行helloboost 文件 ./helloboost boost版本号被成功输出boost被成功安装 拉取我们执行写的服务器代码并进行测试我们直接拉取博主恋恋风辰的个人仓库 git clone https://gitee.com/secondtonone1/boostasio-learn.git cd至networl文件夹下 cd ./boostasio-learn/network/ 选择‘day06-AsyncServer’这个代码文件这个文件用于搭建一个最简单的异步服务器 这里首先写一个cmakelist然后通过cmakelist生成makefile文件再该文件下执行make生成可执行文件AsyncServer运行即可测试。 编写makelist.txt 进入‘/test/code/boostasio-learn/network/day05-AsyncServer’目录下输入 vim ./CMakeLists.txt 输入以下内容 cmake_minimum_required(VERSION 3.12) project(AsyncServer)
设置 C 标准
set(CMAKE_CXX_STANDARD 17)
设置 Boost 的路径
set(BOOST_ROOT /usr)
查找 Boost 库的组件
find_package(Boost REQUIRED COMPONENTS system thread)
添加可执行文件和源文件
file(GLOB SOURCES \({CMAKE_CURRENT_SOURCE_DIR}/day06-AsyncServer/*.cpp) add_executable(AsyncServer \){SOURCES})
包含头文件路径包括其他目录
target_include_directories(AsyncServer PRIVATE \({CMAKE_CURRENT_SOURCE_DIR}/day06-AsyncServer \){CMAKE_CURRENT_SOURCE_DIR}/other_directory# 添加其他目录路径… )
包含 Boost 头文件路径
target_include_directories(AsyncServer PRIVATE ${Boost_INCLUDE_DIRS})
链接 Boost 库
target_link_libraries(AsyncServer PRIVATE \({Boost_LIBRARIES}) cmake_minimum_required:表示cmake所需的最低版本为3.12project(AsyncServer)项目名称为AsyncServerset(CMAKE_CXX_STANDARD 17)C标准设置为C17set(BOOST_ROOT /usr)Boost库的路径为/usrfind_package(Boost REQUIRED COMPONENTS system thread)查找 Boost 库所需的组件比如COMPONENTS system threadfile(GLOB SOURCES \){CMAKE_CURRENT_SOURCE_DIR}/day06-AsyncServer/*.cpp)将所有的cpp文件定义到一个SOURCES 变量中这里将CMAKE_CURRENT_SOURCE_DIR当前cmake目录下下day06-AsyncServer 目录下所有扩展名为 .cpp 的文件添加到 SOURCES 变量中。这一步是为了添加源文件。add_executable(AsyncServer \({SOURCES})添加可执行文件使用 \){SOURCES} 中包含的所有源文件来编译并生成一个目标AsyncServer定义包含目录为AsyncServer 目标添加头文件搜索路径确保当 AsyncServer 编译时这些路径中的头文件可以被找到并正确引用。PRIVATE是访问级别它指定这些目录仅在目标 AsyncServer 的编译过程中可见cmake支持以下三种访问级别 PRIVATE仅当前目标可以访问这些目录其他依赖于这个目标的项目无法访问。PUBLIC当前目标和依赖于这个目标的其他目标都可以访问这些目录。INTERFACE仅依赖于当前目标的其他目标可以访问这些目录但当前目标本身不能访问。包含 Boost 头文件路径为 AsyncServer 目标添加 Boost 库的头文件目录以便在编译时能够找到并使用 Boost 库的头文件\({Boost_INCLUDE_DIRS}包含了 Boost 库头文件的路径通常在找到 Boost 库后CMake 会将头文件路径存储在这个变量中链接 Boost 库将 Boost 库链接到 AsyncServer 目标使其在编译过程中能够找到并链接到 Boost 的库文件。\){Boost_LIBRARIES}这个变量包含了 CMake 找到的 Boost 库的链接路径这个变量通常在调用 find_package(Boost REQUIRED COMPONENTS system thread) 后被定义 最后新建目录build, 进入build目录执行cmake .. mkdir build cd ./build/cmake .. 执行‘make’即可编译该项目 make 生成了‘AsyncServer’可执行文件执行该文件即可启动服务器 ./AsyncServer 我顺便学习了如何将生成的容器生成镜像并打包成压缩文件并在其他机器上下载使用以及如何将容器内部的端口映射至宿主机。总结如下
如何打包容器生成tar 为了避免在其他平台使用该代码需要重复配置容器环境这里学习如何将配置好的docker容器打包生成压缩文件tar。 a. 生成容器镜像 首先将容器生成镜像如果创建了并启动一个容器后必须将其保存为新的镜像不然该容器不会显示在镜像列表中输入“sudo docker images”不会看见该镜像只有输入“sudo docker ps”才能看见正在运行的容器。所以如果想将配置好的容器生成为镜像必须输入下面的内容 sudo docker commit cppubuntu cppubuntu:1.0 b. 将镜像压缩成tar sudo docker save -o cppubuntu.tar cppubuntu:1.0 sudo docker save -o /path/to/your/directory/cppubuntu.tar cppubuntu:1.0 将cppubuntu.tar保存下来该文件可以传输到其他机器或系统中使用。 在其他机器上使用 docker load 命令来加载这个镜像 sudo docker load -i cppubuntu.tar 加载后可以使用 docker images 查看是否成功导入镜像然后像平常一样通过 docker run 命令启动容器。 sudo docker images 然后输入以下命令即可运行该容器 sudo docker run -itd –name testubuntu cppubuntu:1.0 如果想进入这个容器输入以下内容 sudo docker ps sudo docker exec -it testubuntu /bin/bash 第一行命令将列出所有正在运行的容器及其信息 第二行命令进入指定容器-it 参数用于交互式终端/bin/bash 表示想要使用的 shell testubuntu 是在运行该容器时为其指定的名称“sudo docker run -itd –name testubuntu cppubuntu:1.0” 最后可以使用exit命令退出容器 exit
如何将容器内部的端口映射至宿主机 因为容器的ip和宿主机的ip不同容器的ip随时都可能会发生变变化在这种情况下需要将容器内部的一个断开抛出去这样启动容器的时候将该端口带上就会映射成宿主机的一个端口那么外部的客户端访问宿主机的该端口就会进入至容器内部访问到AsyncServer。比如 a. 使用 -p 选项启动容器并映射端口 当启动容器时使用 -p 参数来映射宿主机和容器的端口。假设 AsyncServer 在容器内监听 8080 端口可以这样启动容器 docker run -d -p 8080:8080 cppubuntu -d以后台模式启动容器-p 8080:8080将宿主机的 8080 端口映射到容器内的 8080 端口。这样外部客户端访问宿主机的 8080 端口时会被转发到容器内部的 8080 端口 b. 验证端口映射 启动容器后可以通过 docker ps 查看运行中的容器及其端口映射情况 docker ps 输出示例 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES abc123def456 cppubuntu /bin/sh -c … 5 seconds ago Up 5 seconds 0.0.0.0:8080-8080/tcp cppcontainer 这里可以看到宿主机的 8080 端口已经成功映射到容器的 8080 端口。 c. 在外部客户端访问服务 现在外部的客户端可以通过访问宿主机的 IP 地址和端口号 8080 来访问容器内部的 AsyncServer 服务。例如 http://宿主机IP:8080 这样无论容器的 IP 如何变化外部都可以通过宿主机的端口来稳定地访问容器内部的服务。
- 上一篇: 网站建设公司 佛山长沙网站建设 鼎誉
- 下一篇: 网站建设公司 信科便宜厦门专业的网站制作公司
相关文章
-
网站建设公司 佛山长沙网站建设 鼎誉
网站建设公司 佛山长沙网站建设 鼎誉
- 技术栈
- 2026年04月20日
-
网站建设工作室的营销方式创业计划书编程自学网
网站建设工作室的营销方式创业计划书编程自学网
- 技术栈
- 2026年04月20日
-
网站建设工作会议上的讲话wordpress 删除
网站建设工作会议上的讲话wordpress 删除
- 技术栈
- 2026年04月20日
-
网站建设公司 信科便宜厦门专业的网站制作公司
网站建设公司 信科便宜厦门专业的网站制作公司
- 技术栈
- 2026年04月20日
-
网站建设公司 信科便宜遵义网站制作的网站
网站建设公司 信科便宜遵义网站制作的网站
- 技术栈
- 2026年04月20日
-
网站建设公司 优势html5做服装网站
网站建设公司 优势html5做服装网站
- 技术栈
- 2026年04月20日






