千家信息网

Docker service启动的方法是什么

发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,这篇文章主要介绍"Docker service启动的方法是什么",在日常操作中,相信很多人在Docker service启动的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2025年12月04日Docker service启动的方法是什么

这篇文章主要介绍"Docker service启动的方法是什么",在日常操作中,相信很多人在Docker service启动的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Docker service启动的方法是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Containers

#########################  Dockerfile  ########################## Dockerfile文件定义了image环境,工作空间,网络端口,执行命令## Use an official Python runtime as a parent imageFROM python:2.7-slim# Set the working directory to /appWORKDIR /app# Copy the current directory contents into the container at /appADD . /app# Install any needed packages specified in requirements.txtRUN pip install -r requirements.txt# Make port 80 available to the world outside this containerEXPOSE 80# Define environment variableENV NAME World# Run app.py when the container launchesCMD ["python", "app.py"]
#########################  requirements.txt  ########################## 应用依赖#FlaskRedis
#########################  app.py  ##########################应用from flask import Flaskfrom redis import Redis, RedisErrorimport osimport socket# Connect to Redisredis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)app = Flask(__name__)@app.route("/")def hello():    try:        visits = redis.incr("counter")    except RedisError:        visits = "cannot connect to Redis, counter disabled"    html = "

Hello {name}!

" \ "Hostname: {hostname}
" \ "Visits: {visits}" return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)if __name__ == "__main__": app.run(host='0.0.0.0', port=80)
# 宿主机新建image目录$ lsDockerfile              app.py                  requirements.txt# docker命令会把指令发送给指定的machine,默认是本机,可通过docker-machine env 虚拟机docker build -t friendlyname .  # Create image using this directory's Dockerfile# 注册image到machine的image注册表docker run -p 4000:80 friendlyname  # Run "friendlyname" mapping port 4000 to 80docker run -d -p 4000:80 friendlyname         # Same thing, but in detached mode# 运行image,以container形式docker container ls                                # List all running containersdocker container ls -a             # List all containers, even those not runningdocker container stop            # Gracefully stop the specified containerdocker container kill          # Force shutdown of the specified containerdocker container rm         # Remove specified container from this machinedocker container rm $(docker container ls -a -q)         # Remove all containersdocker image ls -a                             # List all images on this machinedocker image rm             # Remove specified image from this machinedocker image rm $(docker image ls -a -q)   # Remove all images from this machine# 删除image需要停止相关的containerdocker login             # Log in this CLI session using your Docker credentialsdocker tag  username/repository:tag  # Tag  for upload to registry# 标记imagedocker push username/repository:tag            # Upload tagged image to registry# 将标记的image发布到Docker账号/存储库docker run -p 4000:80 username/repository:tag                   # Run image from a registry服务器端口:服务端口

Service

#########################  docker-compose.yml  #########################version: "3"services:  web:    # replace username/repo:tag with your name and image details    image: username/repository:tag    deploy:      replicas: 5      resources:        limits:          cpus: "0.1"          memory: 50M      restart_policy:        condition: on-failure    ports:      - "80:80"    networks:      - webnetnetworks:  webnet:# 从注册表中拉出上传的图像。# 运行该映像的5个实例作为调用的服务web,限制每个实例使用,最多使用10%的CPU(跨所有内核)和50MB的RAM。# 如果发生故障,立即重新启动容器。# 将主机上的端口80映射到web80端口。# 指示web容器通过称为负载平衡网络共享端口80 webnet。(在内部,集装箱本身将web在短暂的港口发布到 80号港口。)# webnet使用默认设置(这是一个负载平衡的覆盖网络)来定义网络。

以service启动

docker-compose up$ docker-compose psWARNING: Some services (visualizer, web) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm.      Name             Command      State           Ports          ------------------------------------------------------------------new2_visualizer_1   npm start       Up      0.0.0.0:8083->8080/tcp new2_web_1          python app.py   Up      0.0.0.0:4003->80/tcp

以stack启动

docker stack ls                                            # List stacks or appsdocker swarm initdocker stack deploy -c docker-compose.yml getstartedlab  # Run the specified Compose filedocker service ls                          # List running services associated with an appdocker service ps getstartedlab_web     # List tasks associated with an appcurl 192.168.2.249docker stack rm getstartedlab      # Tear down an applicationdocker swarm leave --force      # Take down the swarm            docker inspect                    # Inspect task or containerdocker container ls -q                                      # List container IDs

Swarms

docker-machine create --driver virtualbox myvm1 # Create a VM (Mac, Win7, Linux)docker-machine create -d hyperv --hyperv-virtual-switch "myswitch" myvm1 # Win10docker-machine create --engine-insecure-registry 192.168.1.112:5000 x-node1dicker-machine lsNAME       ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORSx-master   *        virtualbox   Running   tcp://192.168.99.131:2376           v17.09.0-ce   x-node1    -        virtualbox   Running   tcp://192.168.99.132:2376           v17.09.0-cedocker-machine env x-master                # View basic information about your nodedocker-machine ssh x-master "docker swarm init --advertise-addr "docker-machine ssh x-master "docker node ls"         # List the nodes in your swarmdocker-machine ssh x-master "docker swarm join-token manager"docker-machine ssh x-node1 "docker swarm join --token SWMTKN-1-1mw72ip89hsz351lbbhvuj97nj4x5q5vs6zk1zidtcs093isvq-7y6kwg6emzyhokesi7zn7d1qt 192.168.99.131:2377"docker-machine ssh x-master "docker node ls"         # List the nodes in your swarmdocker stack deploy -c docker-compose.yml getstartedlab # swarms开启servicedocker stack ps getstartedlabcurl 192.168.2.249curl 192.168.99.131curl 192.168.99.132docker stack rm getstartedlab

Stacks

#########################  docker-compose.yml  #########################version: "3"services:  web:    # replace username/repo:tag with your name and image details    image: username/repo:tag    deploy:      replicas: 5      restart_policy:        condition: on-failure      resources:        limits:          cpus: "0.1"          memory: 50M    ports:      - "80:80"    networks:      - webnet  visualizer:    image: dockersamples/visualizer:stable    ports:      - "8080:8080"    volumes:      - "/var/run/docker.sock:/var/run/docker.sock"    deploy:      placement:        constraints: [node.role == manager]    networks:      - webnetnetworks:  webnet:# 增加stack的service

到此,关于"Docker service启动的方法是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

端口 方法 网络 学习 服务 命令 实例 容器 更多 标记 注册表 港口 帮助 应用 运行 实用 接下来 主机 内核 图像 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国联通邮箱收发件服务器 长春市佳路软件开发有限公司 网络技术与应用测试题 数据库技术与应用大题 日常生活如何应对网络安全问题 破坏网络安全的行为包括 数据库视频哪个好 ibm服务器自动关机 手游hypixel服务器ip cs1.6北京狼群服务器 衡水职业技术学院软件开发 台湾谈大陆互联网科技 为什么战地五显示EA服务器超时 app中数据库保存在哪 安徽计算机网络技术专业代码 用友t3会计软件连接不到服务器 软件开发现在还能做it吗 网络安全法启动执行 武汉做软件开发的公司 个人电脑服务器更改数据 短期能学会的网络技术 软件服务器安全连接建立失败 吉林软件开发计划 中国网络安全法提升什么水平 无基础计算机网络技术可以 单片机c语言软件开发系统 广东视频会议服务器供应商 服务器管理器添加新电脑 sql数据库 null 黑魂三ps4有几个服务器
0