[docker] 启动docker的container(或者说image的实例)
1 首先查看有哪些image以及有哪些container
sudo docker image ls# 结果
REPOSITORY TAG IMAGE ID CREATED SIZE
currycode/tf_serving_vc v1.0 26fdfe329859 2 months ago 3.85GB
currycode/tf_serving_vc 1.0 d6957b0caf48 2 months ago 3.79GB
ubuntu 18.04 93fd78260bd1 3 months ago 86.2MB
tensorflow/serving latest d42952c6f8a6 4 months ago 230MB
hello-world latest 4ab4c602aa5e 6 months ago 1.84kB
sudo docker ps -a# 结果
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2effa7569ce3 currycode/tf_serving_vc:1.0 "/bin/bash" 2 months ago Exited (0) 7 weeks ago tf_container_vc
a01e03520497 tensorflow/serving "/usr/bin/tf_serving…" 2 months ago Exited (137) 2 months ago determined_morse
ea05fb751b1a hello-world "/hello" 2 months ago Exited (0) 2 months ago dazzling_kirch
2 启动container
2.1 如果你之前没有创建container,则需要基于image新创建一个container
docker run --name=tf_container_ASR -p 9001:9001 -p 9002:9002 -td currycode/tf_serving:v0330
# 也就是从上面的currycode/tf_serving_vc镜像中启动一个container
# i表示获得一个交互式的连接,通过 standard in (STDIN)获取container的输入,也就是让容器的标准输入保持打开。d表示后台运行A
# t表示让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
# 如果想指定端口和ip映射关系,可以使用-p参数(选项指定Host:Container之间的端口映射关系),默认映射到'172.17.0.2:9000'# docker run: runs a container.
# tf_container_vc2: is the image you would like to run.
# -t: flag assigns a pseudo-tty or terminal inside the new container.
# -i: flag allows you to make an interactive connection by grabbing the standard in (STDIN) of the container.
# /bin/bash: launches a Bash shell inside our container.
创建成功后会进入container的终端(因为-it参数)
参考:
http://www.runoob.com/docker/docker-image-usage.html
https://docs.docker.com/engine/reference/commandline/run/
https://blog.csdn.net/dongdong9223/article/details/52998375
https://blog.csdn.net/Yushl_sirius/article/details/76619792
2.2 如果你之前已经创建过container(比如上面docker ps 命令中显示有三个container),则可以直接启动container,不需要从image创建一个新的container了
docker start -i tf_container_vc# -i表示Attach container’s STDIN
# 成功后如下面第二行所显示会直接进入container的终端
[currycode@mjrc-server11 ~]$ sudo docker start -i tf_container_vc
root@2effa7569ce3:/tensorflow-serving# 如果使用docker start tf_container_vc 则是在后台运行container
[currycode@mjrc-server11 ~]$ sudo docker start tf_container_vc
tf_container_vc
[currycode@mjrc-server11 ~]$ sudo docker stop tf_container_vc
tf_container_vc
参考:
https://docs.docker.com/engine/reference/commandline/start/
http://www.runoob.com/docker/docker-start-stop-restart-command.html
如果container此时运行在后台(没有使用-i参数),那么需要使用docker attach命令或者docker exec命令进入 他的终端
2.2.1 docker attach
[currycode@mjrc-server11 ~]$ sudo docker attach tf_container_vc
root@2effa7569ce3:/tensorflow-serving#
但是attach方法有个缺点,exit后container也跟着退出了
root@2effa7569ce3:/tensorflow-serving# exit
exit
[currycode@mjrc-server11 ~]$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2effa7569ce3 currycode/tf_serving_vc:1.0 "/bin/bash" 2 months ago Exited (0) 3 seconds ago tf_container_vc
a01e03520497 tensorflow/serving "/usr/bin/tf_serving…" 2 months ago Exited (137) 2 months ago determined_morse
ea05fb751b1a hello-world "/hello" 2 months ago Exited (0) 2 months ago dazzling_kirch
要想退出container时,让container仍然在后台运行着,可以使用“docker exec -it”命令。每次使用这个命令进入container,当退出container后,container仍然在后台运行,命令使用方法如下:
2.2.2 docker exec
[currycode@mjrc-server11 ~]$ sudo docker exec -it tf_container_vc /bin/bash
root@2effa7569ce3:/tensorflow-serving# # tf_container_vc :要启动的container的名称
# /bin/bash:在container中启动一个bash shell
这样输入“exit”或者按键“Ctrl + C”退出container时,这个container仍然在后台运行:
root@2effa7569ce3:/tensorflow-serving# exit
exit
[currycode@mjrc-server11 ~]$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2effa7569ce3 currycode/tf_serving_vc:1.0 "/bin/bash" 2 months ago Up 4 minutes tf_container_vc
a01e03520497 tensorflow/serving "/usr/bin/tf_serving…" 2 months ago Exited (137) 2 months ago determined_morse
ea05fb751b1a hello-world "/hello" 2 months ago Exited (0) 2 months ago dazzling_kirch
参考:
https://www.ibm.com/developerworks/community/blogs/132cfa78-44b0-4376-85d0-d3096cd30d3f/entry/%E4%B8%A4%E7%A7%8D%E8%BF%9B%E5%85%A5%E5%AE%B9%E5%99%A8%E7%9A%84%E6%96%B9%E6%B3%95_%E6%AF%8F%E5%A4%A95%E5%88%86%E9%92%9F%E7%8E%A9%E8%BD%AC_Docker_%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF_23?lang=en
https://blog.csdn.net/dt763C/article/details/82719332
最后查看container IP address:
[currycode@mjrc-server11 ~]$ sudo docker network inspect bridge | grep IPv4Address"IPv4Address": "172.17.0.2/16",
其他方法:
[currycode@mjrc-server11 ~]$ sudo docker exec -it tf_container_vc ip addr | grep global
[currycode@mjrc-server11 ~]$ sudo docker port tf_container_vc
当对container进行了一下修改后,想要永久保存这些修改,需要使用docker commit命令:
[currycode@mjrc-server11 ~]$ sudo docker commit 2effa7569ce3 currycode/tf_serving_vc:v2.0
sha256:90a90c637f62a6819e14f3e6c256926921d4d6f661d941d114d7990b3473c231
[currycode@mjrc-server11 ~]$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2effa7569ce3 currycode/tf_serving_vc:1.0 "/bin/bash" 2 months ago Up 10 hours tf_container_vc
a01e03520497 tensorflow/serving "/usr/bin/tf_serving…" 2 months ago Exited (137) 2 months ago determined_morse
ea05fb751b1a hello-world "/hello" 2 months ago Exited (0) 2 months ago dazzling_kirch
[currycode@mjrc-server11 ~]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
currycode/tf_serving_vc v2.0 90a90c637f62 11 seconds ago 4GB
currycode/tf_serving_vc v1.0 26fdfe329859 2 months ago 3.85GB
currycode/tf_serving_vc 1.0 d6957b0caf48 2 months ago 3.79GB
ubuntu 18.04 93fd78260bd1 3 months ago 86.2MB
tensorflow/serving latest d42952c6f8a6 4 months ago 230MB
hello-world latest 4ab4c602aa5e 6 months ago 1.84kB
参考:
http://www.runoob.com/docker/docker-commit-command.html
删除docker的image(在此之前需要先删除依赖他的所有container):http://yaxin-cn.github.io/Docker/how-to-delete-a-docker-image.html
[docker] 启动docker的container(或者说image的实例)相关推荐
- docker 启动容器报错及解决办法
docker 启动容器报错:Error response from daemon: oci runtime error: container_linux.go:247: starting contai ...
- docker启动服务命令
安装完成后docker,执行命令 docker ps 遇到如下错我] Cannot connect to the Docker daemon. Is the docker daemon running ...
- 记录Docker in Docker 安装(CentOS7)
主机系统: CoreOS iZwz9id7ajv83ikpa2hhn2Z ~ # cat /etc/os-release NAME="Container Linux by CoreOS&qu ...
- Docker(一) docker简介安装以及下载运行第一个镜像
一.什么是Docker docker简介: docker是一个开源的应用容器引擎,基于go语言,遵从apache2.0协议开源.通过docker让开发者可以打包他们的应用以及依赖到一个可移植的镜像中, ...
- 【Docker】Docker进阶(二)
Docker进阶 三.Docker发布微服务 四.Docker网络 4.1.Docker 网卡 4.2.docker网络命令 4.3.Docker 网络模式 4.3.1.bridge模式 4.3.2. ...
- Docker之Docker介绍及安装配置
为什么Docker? 引用官方定义:Docker是以Docker容器为资源分割和调度的基本单位,封住整个软件运行时环境,为开发者和系统管理员设计的,用于构建.发布和运行分布式应用的平台.他是一个跨平台 ...
- 【Docker】Docker的安装及配置
0.安装Docker Docker 分为 CE 和 EE 两大版本.CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月. Docker CE 分为 s ...
- 【docker】docker的安装教程
官网地址:Home - Docker 公共仓库:Docker Hub 安装文档:Get Docker | Docker Documentation 安装docker之前首先要选择我们需要安装docke ...
- Docker启动MySql时Exited (1) 8 seconds ago或者Error response from daemon: Container xx is not running的解决方法
本人小白,跟着老师学习<谷粒商城>过程中遇到这个问题,具体原理我也不清楚,多方搜索,以下方案可以解决该问题. 问题1:找的网图 或者出现以下情况: 问题2: 当修改好配置后,重启mysql ...
最新文章
- DevOps笔记-02:DevOps与微服务之间是什么关系?
- ROS系统实现 tf坐标系广播与监听
- python调用什么函数实现对文件内容的读取_Python 文件读取函数 read(), readline(), readlines()...
- java多线程---比较全的
- 基于XGBoost的PU-Learning
- 对勾函数_对勾函数?2020福建省中考压轴题分析
- VS2008水晶报表发布部署总结
- linux getline函数用法,get()与getline()
- python全栈学习路线-查询笔记
- 2012.5.4号--关于125k(简易读卡和低频唤醒)
- 2022年最新广东道路运输安全员真题题库及答案
- 八段数码管数字显示实验c语言,八段数码管显示实验.doc
- VC++ 扫雷游戏的界面框架(“雷”按钮),不得不佩服那些码农
- Oracle期末复习1
- 数据分析与Excel(二)
- 三大移动平台概览:移动游戏开发者生存必读
- linux系统上ros安装,Ubuntu中安装ROS Kinetic
- p50, p90, p99 (pct 50, pct 90, pct 99)指什么?
- 地图四染色问题——栈的回溯
- java实现在图片上插入文字并保存。
热门文章
- java异或什么意思_java基础知识,数据类型,运算符(003)
- hbuliderX语法插件助手下载失败
- 格式%m.nf的含义
- 性能测试:从奥运门票系统崩溃想到的
- 【论文】期刊和会议如何查询、期刊级别分类和顶会概念一文精析
- BUUCTF [GXYCTF2019]Ping Ping Ping easywill
- 2017 ACM/ICPC Asia Regional Shenyang Online Ping Ping Ping 树链剖分+树状数组
- C++ 函数指针和函数类型
- nvm切换node失败,原因:网速慢文件下载不全,使用淘宝镜像加速下载
- 【2017年11月27日】CSDN博客更新周报