首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

Docker基础之五: 使用Docker容器

使用Docker容器 (对Docker感兴趣的朋友可以加我的微信ghostcloud2016,然后我把你加到我们的一个Docker爱好者群组里面。) 这一节我们将从运行一个简单的Hello world入手,来讲解如何使用容器。 1 运行Hello World root@shev:~# docker run ubuntu:14.04 echo hello-world hello-world root@shev:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0cef7fa7468d ubuntu:14.04 "echo hello-world" 3 seconds ago Exited (0) 2 seconds ago condescending_visvesvaraya 剖析: 本条命令启动ubuntu:14.04版本的镜像,并在其中运行打印hello world的命令; 由于我们的命令是一个简单的语句,并不会持续很长时间,当命令执行完毕时,容器就退出了 因此,我们通过docker ps –a可以看到容器的状态是停止状态 2 运行一个可交互的容器 之前的例子里面,容器在运行完指令后就自动退出了,那么我们可不可以运行一个可交互的容器呢? root@shev:~# docker run -it ubuntu /bin/bash Unable to find image 'ubuntu:latest' locally latest: Pulling from library/ubuntu Digest: sha256:f91f9bab1fe6d0db0bfecc751d127a29d36e85483b1c68e69a246cf1df9b4251 Status: Downloaded newer image for ubuntu:latest root@558531c2b215:/# ll total 72 drwxr-xr-x 32 root root 4096 Dec 2 09:16 ./ drwxr-xr-x 32 root root 4096 Dec 2 09:16 ../ -rwxr-xr-x 1 root root 0 Dec 2 09:16 .dockerenv* -rwxr-xr-x 1 root root 0 Dec 2 09:16 .dockerinit* drwxr-xr-x 2 root root 4096 Oct 28 04:34 bin/ drwxr-xr-x 2 root root 4096 Apr 10 2014 boot/ drwxr-xr-x 5 root root 380 Dec 2 09:16 dev/ drwxr-xr-x 64 root root 4096 Dec 2 09:16 etc/ drwxr-xr-x 2 root root 4096 Apr 10 2014 home/ drwxr-xr-x 12 root root 4096 Oct 28 04:34 lib/ drwxr-xr-x 2 root root 4096 Oct 28 04:33 lib64/ drwxr-xr-x 2 root root 4096 Oct 28 04:33 media/ drwxr-xr-x 2 root root 4096 Apr 10 2014 mnt/ drwxr-xr-x 2 root root 4096 Oct 28 04:33 opt/ dr-xr-xr-x 160 root root 0 Dec 2 09:16 proc/ drwx------ 2 root root 4096 Oct 28 04:34 root/ drwxr-xr-x 7 root root 4096 Oct 28 04:34 run/ drwxr-xr-x 2 root root 4096 Nov 10 00:35 sbin/ drwxr-xr-x 2 root root 4096 Oct 28 04:33 srv/ dr-xr-xr-x 13 root root 0 Dec 2 09:16 sys/ drwxrwxrwt 2 root root 4096 Oct 28 04:34 tmp/ drwxr-xr-x 11 root root 4096 Nov 10 00:35 usr/ drwxr-xr-x 12 root root 4096 Nov 10 00:35 var/ root@558531c2b215:/# ifconfig eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02 inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0 inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:648 (648.0 B) TX bytes:648 (648.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) 剖析: 本例中,我们在ubuntu:latest镜像中,执行/bin/bash,由于bash本身是一个包含了交互的终端,因此我们可以长时间的运行容器; 但是,我们必须指定-it,同shell的stdiin和stdout绑定起来 进入容器后,我们实际进入了一个shell终端,里面不仅可以访问文件将,还有一个虚拟网卡和IP。这是不是跟一个linux主机是一样的呢? 3 在容器中运行一个后台守护进程 所谓后台守护进程,就是运行在后台,并不会阻塞当前的进程。 在后台运行一个脚本,每隔1秒打印一句hello world: root@shev:~# docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" ba50b5023bb15b50608d855671d40c09690f5b1a956a40e3544acde791e04aa3 查看后台的运行日志: root@shev:~# docker logs ba50 hello world hello world hello world hello world hello world hello world hello world 查看当前正在运行的容器列表: root@shev:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ba50b5023bb1 ubuntu:14.04 "/bin/sh -c 'while tr" 2 minutes ago Up 2 minutes ecstatic_bell e221abf45a0b ghostcloud.cn:5000/gcali:1.2 "/usr/local/ghostclou" 49 minutes ago Up 49 minutes gcsagent 停止指定的容器: root@shev:~# docker stop ba50 ba50 再次查看正在运行的容器: root@shev:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e221abf45a0b ghostcloud.cn:5000/gcali:1.2 "/usr/local/ghostclou" 50 minutes ago Up 50 minutes gcsagent 剖析: 本例中,我们通过-d属性,让容器运行在后台,我们并不进入容器内部 执行完毕后,返回了一个id,该id是容器的id。上面显示的是容器的完整id,但是我们实际操作的时候,一般可以只输入前面几位即可,docker会自动进行匹配 我们通过docker logs来查看容器运行的情况,也就是我们循环打印的日志 由于该容器是长时间运行的,所以我们可以通过docker ps,查看该容器 docker stop则是停止该容器,停止后,我们就看不到该容器了

优秀的个人博客,低调大师

6步搭建一个飞机大战游戏

摘要:本文以华为云软件开发平台DevCloud为例,展示飞机大战游戏开发的DevOps实践流程。 DevOps实践 DevOps实践是一种开发、测试运维一体化的模式,其实践的外在表现一般包括了如代码仓库、构建、测试、发布、配置、监控等工具形成的一个完整的工具链或者说开发平台,以华为云软件开发平台DevCloud为例,展示飞机大战游戏开发的DevOps实践流程。 实践手册下载>>> 提交实践结果赢奖品>>> 实验介绍 项目名称:飞机大战游戏 项目简介:一个用 Cocos Creator 开发的 Web 游戏,可以进行飞机大战。 开发语言:JavaScript(49.3%)、CSS(36.6%)、Html(14%) 部署环境:CentOS 7.6 64bit for Kai1s +jdk1.8 涉及云服务:华为云 DevCloud、华为云弹性云服务器 ECS 操作流程 操作步骤 创建私有云 步骤1:在华为云服务列表找到“服务列表”,进入华为云“虚拟私有云VPC”,创建虚拟私有云,配置虚拟私有云名称和子网名称,其他默认配置,点击立即创建; 步骤2:创建安全组并添加规则 创建安全组 名称:sg-plane 企业:default 模板:通用Web服务器 描述:无 添加规则:添加入向规则 优先级:1 协议端口:TCP 输入:8080 创建项目 在华为云官网产品列表中,前往“软件开发平台DevCloud”的管理控制台,新建项目; 项目流程:看板 项目名称:自定义 创建代码仓库 进入代码->代码托管,导入外部仓库: 源仓库地址:https://codehub.devcloud.cn-north4.huaweicloud.com/yxdmmsymbgl00001/planeGame.git 源仓库访问权限:不需要用户名/密码 勾选“我已阅读并同意 《隐私政策声明》 和 《软件开发服务使用声明》” 点击“下一步”按钮 自定义代码仓库名称 其他默认值,最后确认 新建编译构建任务 在“构建&制品”中选择“编译构建”后,新建任务: 步骤1:选择Shell模板,在命令行中输入zip -qr WebGames.zip ./ 步骤2:在Shell下方增加“上传软件包到软件发布库” 构建包路径:WebGames.zip 发布版本号:1.0.0 包名:WebGames 步骤3:新建并执行 新建部署任务 步骤1:进入“控制台”选择“服务列表”购买弹性云服务器ECS,并进行配置; 计费模式:按需收费 区域:华北-北京四 可用区:随机分配 CPU 架构:鲲鹏计算 规格:kai1s.xlarge.1(4 核 4G) 镜像:CentOS 7.6 64bit for Kai1s(40GB) 网络:选择本实验创建的虚拟私有云 安全组:选择本实验创建的安全组 云服务器名称:自定义(如:ecs-plane-kunpeng) 密码:自定义 步骤2:进入华为云DevCloud控制台,选择“部署”->“主机管理”; 添加主机组,输入主机名,选择linux操作系统,点击保存; 添加主机; 输入自定义主机名称,如planewar IP(云服务弹性公网IP) 认证方式:密码 用户名:root 密码:自己云服务器ECS的密码 ssh端口:22 勾选我已阅读…,点击添加 添加成功后,显示验证成功。 步骤3:重新进入部署服务,新建任务,选择Tomcat应用部署模板 点击“选择部署来源”下方的加号,添加“解压文件”,配置: 压缩文件路径:${download_path}/WebGames.zip, 解压目录:${download_path}/WebGames; “参数设置”页中,将以下参数进行修改,其余参数保持默认不变 ${host_group}:ecs_group_planewar(即本实验中创建的主机组) ${package_url}:/WebGames/1.0.0/WebGames.zip Service_port:8080 步骤4:访问应用 释放云资源 本实验需要释放的资源有:弹性云服务器ECS、虚拟私有云和安全组。 步骤1:前往“弹性云服务器ECS”管理控制台,释放资源; 步骤2:前往“虚拟私有云 VPC”管理控制台,先删除所有子网,再删除虚拟私有云; 步骤3:进入“访问控制”中的安全组,删除需要删除的安全组。 点击关注,第一时间了解华为云新鲜技术~

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册