docker基础命令

##列出docker客户端命令
docker
docker container --help ##显示docker的版本和信息
docker --version
docker version
docker info

##执行docker镜像生成一个容器(容器不是运行状态)
docker run [镜像]

##列出docker镜像
docker image ls
docker images

##列出docker容器(正在运行的,所有的,所有quiet模式的)
docker container ls
docker container ls --all
docker container ls -aq #停止一个容器
docker container stop [CONTAINER ID]

通过修改容器来创建一个新镜像(python2.7.5 + node.js11.10.0 + flask +项目应用demo)

步骤一:下载基础镜像----只包含centos的镜像(这个镜像里自带python2.7.5)

#查看官方https://hub.docker.com已有的centos镜像
docker search centos
#选择合适自己镜像拉取到本地
docker pull centos
[root@izwz92fbqxna6qt4ya9t4nz soft]# docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. [OK]
ansible/centos7-ansible Ansible on Centos7 [OK]
jdeathe/centos-ssh CentOS- 6.10 x86_64 / CentOS- 7.5. x86… [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… [OK]
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 [OK]
centos/mysql--centos7 MySQL 5.7 SQL database server
[root@izwz92fbqxna6qt4ya9t4nz soft]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426
Status: Image is up to date for centos:latest

步骤二:使用镜像centos创建并以后台模式运行该容器(不用-dit的话,运行之后容器状态不是up,注意-d和-dit不是一个命令)

docker run -dit centos

步骤三:找到容器并切入容器里

#查看运行中的容器
docker ps
#查看所有容器
docker ps -a
#切进容器
docker attach [CONTAINER ID 或 wizardly_kirch]
docker exec -it [CONTAINER ID] /bin/bash
#退出容器(退出之后容器也停止了)
exit
#退出容器(退出之后容器还在运行中)
先ctrl+p 再 ctrl+q
[root@izwz92fbqxna6qt4ya9t4nz soft]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8bf91340323d centos "/bin/bash" minutes ago Up minutes wizardly_kirch
8c5d1bb19a3e centos "/bin/bash" minutes ago Exited () minutes ago reverent_curran
[root@izwz92fbqxna6qt4ya9t4nz soft]# docker attach 8bf91340323d
[root@8bf91340323d /]#

有的镜像我直接使用docker attach命令可以正常切入容器中,有时候切进去又无反应,但是使用docker exec -it可以正常切入

[root@localhost docker]# docker attach bfbcca966a49
ls
read escape sequence
[root@localhost docker]# docker exec -it bfbcca966a49 /bin/bash
jenkins@bfbcca966a49:/$

ps:查看linux版本发现是centos7.6,python2.7.5

[root@8bf91340323d /]# cat /etc/centos-release
CentOS Linux release 7.6. (Core)
[root@8bf91340323d /]# python
Python 2.7. (default, Oct , ::)
[GCC 4.8. (Red Hat 4.8.-)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

步骤四:在该容器里安装和配置所需的环境

下载node.js的二进制包进行解压安装

#从主机拷贝到容器的指定目录
docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
#从容器拷贝到主机
docker cp 容器名:要拷贝到容器里面对应的路径 要拷贝的文件路径

安装pip和flask,将项目代码也复制到容器中

步骤五:从修改后的容器导出新的镜像centos:node_flask(镜像名:标签)

[root@izwz92fbqxna6qt4ya9t4nz soft]# docker commit 541aff7533d9 centos:node_flask
sha256:724f235e44ba18927651903e68f6802a455aa9b07b823acf48eb50865b8cce4a
[root@izwz92fbqxna6qt4ya9t4nz soft]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos node_flask 724f235e44ba seconds ago 529MB
docker latest 73d492654a09 days ago 170MB
hello-world latest fce289e99eb9 weeks ago .84kB
centos latest 1e1148e4cc2c months ago 202MB
[root@izwz92fbqxna6qt4ya9t4nz soft]# docker rmi docker

docker的使用---创建新的镜像(通过修改容器,个人练手理解过程记录,不推荐使用)的更多相关文章

  1. docker commit命令创建新的镜像

    docker commit命令创建新的镜像 1.运行容器 2.修改容器 3.将容器保存为新容器 (1)运行容器 [root@cmdb-server docker]# docker run -ti ce ...

  2. docker2-镜像原理及创建新的镜像

    1,镜像是什么 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件 在docker中所有应用 ...

  3. Docker使用Dockerfile构建新的镜像

    构建镜像步骤; 1.创建Dockerfile文件,该文件是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明. vim Dockerfile //每一个指令都会在镜像上创建一个新 ...

  4. Docker使用Dockerfile创建支持ssh服务自启动的容器镜像

    原文链接:Docker使用Dockerfile创建支持ssh服务自启动的容器镜像 1. 首先创建一个Dockerfile文件.文件内容例如以下 # 选择一个已有的os镜像作为基础 FROM cento ...

  5. Docker学习笔记 - 创建私有的镜像仓库

    一.查找镜像仓库 https://hub.docker.com/ 二.下载镜像仓库 docker pull registry:2.6.2 三.安装镜像仓库 docker run -d -p 6000: ...

  6. 3、docker常用命令:help、镜像命令、容器命令

    1.帮助命令 1.docker version 2.docker info 3.重点掌握:docker --help 2.镜像命令 1.docker,镜像,容器关系 2.docker images ( ...

  7. docker 创建新的镜像到私有仓库

    docker:/data# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bd6db4127a9e centos &q ...

  8. docker之手动构建新的镜像

    转自:https://www.cnblogs.com/jsonhc/p/7766561.html 查看本地现有镜像: [root@docker ~]# docker images REPOSITORY ...

  9. docker使用现有容器生成新的镜像

    /*运行docker run后 --则进入该容器里了 我们做一些变更,比如安装一些东西 ,然后针对这个容器进行创建新的镜像 */ 基本形式: docker commit -m "change ...

随机推荐

  1. AR+工业,带来哪些革变呢?

            随着技术的普及相信大家对VR和AR也略有所知,尤其是AR增强现实技术,已经成为许多科技巨头企业争相扩疆的热土,目前来说,AR技术最广泛的应用是工业领域,已经显示出巨大的价值.     ...

  2. PythonI/O进阶学习笔记_3.1面向对象编程_python的多态和鸭子类型

    前言: 与第一篇的面向对象内容不同的是,第一篇中的面向对象更多的是与类.对象结合起来的概念粗浅理解,就是在编程历史中诞生的一种思想方法. 这篇的面向对象编程,更多落实到在语言设计实现中,是如何体现面向 ...

  3. view生命周期

  4. CF #535 (Div. 3) E2 Array and Segments (Hard version) 利用线段树进行区间转移

    传送门 题意:    有m个区间,n个a[ i ] , 选择若干个区间,使得整个数组中的最大值和最小值的差值最小.n<=1e5,m<=300; 思路: 可以知道每个i,如果一个区间包含这个 ...

  5. SPOJ - GSS1-Can you answer these queries I 线段树维护区间连续和最大值

    SPOJ - GSS1:https://vjudge.net/problem/SPOJ-GSS1 参考:http://www.cnblogs.com/shanyr/p/5710152.html?utm ...

  6. 计蒜客 蓝桥杯模拟 瞬间移动 dp

      在一个 n \times mn×m 中的方格中,每个格子上都有一个分数,现在蒜头君从 (1,1)(1,1) 的格子开始往 (n, m)(n,m) 的格子走.要求从 (x_1,y_1)(x1​,y1 ...

  7. hud 1633 Orchard Trees 点是否在三角形内模板 *

    Orchard Trees Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  8. d3.js 实现烟花鲜果

    今天在d3.js官网上看到了一个烟花的DEMO,是canvas制作的,于是我想用d3.js来实现它,js代码只有几行.好了废话不多说,先上图. 1 js 类 因为烟花要有下落的效果,所以里面用到了一些 ...

  9. TensorFlow读取数据的三种方法

    tensortlfow数据读取有三种方式 placehold feed_dict:从内存中读取数据,占位符填充数据 queue队列:从硬盘读取数据 Dataset:同时支持内存和硬盘读取数据 plac ...

  10. 玩转 Springboot 2 之热部署(DevTools)

    Devtools 介绍 SpringBoot 提供了热部署的功能,那啥是热部署累?SpringBoot官方是这样说的:只要类路径上的文件发生更改,就会自动重新启动应用程序.在IDE中工作时,这可能是一 ...