我的编程空间,编程开发者的网络收藏夹
学习永远不晚

docker-3 基础命令

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

docker-3 基础命令

创建镜像

创建镜像的方法有三种:

  • 基于已有的容器创建

  • 基于本地模板导入

  • 基于dockerfile

基于已有的容器创建

主要使用docker commit 命令,命令格式:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:tag]],主要包括:

-a ,--author=""  作者信息

-m,--message=""提交消息

-p,--pause=true 提交时暂停容器

例如:

# docker run -it centos /bin/bash[root@d7e7ac1cbca2 /]# touch test
[root@d7e7ac1cbca2 /]# ls 
anaconda-post.log bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys test tmp usr var
# docker commit -m "add a file" -a "kafeikele" de6 centos_copy
5d318afa9e6f7fdb755db97e29e3860b752f24b0b50e6bfa0b7e457450802c0e
# docker p_w_picpaths
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos_copy latest 5d318afa9e6f 13 seconds ago 196.7 MB


基于本地模板导入

推荐使用openVZ提供的模板来创建

https://openvz.org/Download/templates/precreated

#cat centos-7-x86_64-minimal.tar.gz.crdownload | docker import - centos:latest

存出和导入镜像

# docker p_w_picpaths
centos   7.1.1503      47a77536ad4c        8 weeks ago         212.1 MB
# docker save -o centos_7.1.tar centos:7.1.1503 
# docker load --input centos_7.1.tar
# docker load < centos_7.1.tar

 

基于dockerfile

之后的内容详细介绍

 

运行第一个docker容器

# docker run centos echo "hello world"
Unable to find p_w_picpath 'centos:latest' locally
latest: Pulling from centos
47d44cb6f252: Pull complete
168a69b62202: Pull complete
812e9d9d677f: Pull complete
4234bfdd88f8: Pull complete
ce20c473cd8a: Pull complete
centos:latest: The p_w_picpath you are pulling has been verified. Important: p_w_picpath verification is a tech preview feature and should not be relied on to provide 
security.
Digest: sha256:3aaab9f1297db9b013063c781cfe901e2aa6e7e334c1d1f4df12f25ce356f2e5
Status: Downloaded newer p_w_picpath for centos:latest
hello world

命令说明:

docker run :标准容器启动命令

centos: 镜像名称,默认是latest

echo和后面的内容:容器启动后执行的命令

启动一个交互式容器

docker run -it centos /bin/bash

*注:-t标示在心容器内指定一个伪终端或终端,-i标示允许我们对容器内的STDIN进行交互

以服务方式启动一个docker容器

如果你实际测试,估计也发现了,第一个“hello world”容器启动后执行完echo命令就退出了,而第二个交互式的容器,只要用户退出当前容器的bash,容器也退出了。这明显不能满足一个服务长时间运行的要求,好找docker run提供了‘-d’参数,可以实现将容器以守护进程方式启动。

docker  run -d  centos /bin/bash -c "while true; do echo Docker,hello world; sleep 2; 
179fc7f17c358834364d23112aa26d6a9e1875b2281563720425f62a8f1b5c33

这个长的字符串叫做容器ID。它是容器的唯一标识,所以我们可以使用它来操作容器,比如查看日志、停止或删除容器等。

dock logs 179fc7f17c358834364d

而为什么使用一个死循环来输出呢?

因为如果不是死循环,一次输出后,容器中的进程就结束了。容器的唯一进程都结束了,容器就停止了。因此如果要在容器中运行具体的服务,这项服务本身在容器中也必须是已守护进程方式运行的。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
主要选项:
-d : 以后台进行方式运行容器
-t : 提供一个伪终端
-i : 提供交互输入,一般与“-t”一起使用,如果只提供“-i”选项,则容器启动后是无法退出的
-v : 映射一个volume给容器,如: -p /data/www:/var/www/html
-p : 将容器的端口映射给宿主机,如: -p 8080:80

  

更多命令操作

# docker p_w_picpaths 列出本地所有镜像
 
# docker search centos  从默认镜像仓库搜索镜像
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 2767 [OK] 
ansible/centos7-ansible Ansible on Centos7 90 [OK]
jdeathe/centos-ssh CentOS-6 6.8 x86_64 / CentOS-7 7.2.1511 x8... 42 [OK]
jdeathe/centos-ssh-apache-php CentOS-6 6.8 x86_64 - Apache / PHP / PHP M... 21 [OK]
nimmis/java-centos This is docker p_w_picpaths of CentOS 7 with dif... 17 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC sessi... 14 [OK]

#docker pull centos  下载镜像到本地

#docker create -it  ubuntu:latest  创建一个容器 
Unable to find p_w_picpath 'ubuntu:latest' locally
latest: Pulling from ubuntu
58488e45273c: Pull complete 
25810b66099e: Pull complete 
6571ba684f54: Pull complete 
6ed49a73d8f0: Pull complete 
c53777cbfc31: Pull complete 
56465e1e45d2: Pull complete 
Digest: sha256:312986132029d622ae65423ca25d3a3cf4510de25c47b05b6819d61e2e2b5420
Status: Downloaded newer p_w_picpath for ubuntu:latest
1330233e50aba7fca99e5914bd28dd89321bc86ec35fb36b4775d3424337c190
#docker start 1330233e

docker create 命令创建的容器处于停止状态,需要用docker start 把它启动
docker run 命令等价于先执行docker create命令, 然后再执行docker start 命令
# docker run ubuntu /bin/echo "hello world"hello world
# docker ps -a   列出所有的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1330233e50ab ubuntu:latest "/bin/bash" About a minute ago happy_engelbart
#docker ps -l  列出最新创建的容器

#docker stop   1330233e 停止一个容器,和start相反,133023是容器ID

#docker rm 1330233e  删除一个停止的容器
#docker rm -f 1330233e  强制删除一个容器,没有停止也可以删掉,不建议使用

#docker rmi 镜像名   删除一个镜像

 进入容器

方法一:

# docker attach a54615a88787    后面跟的是容器名或者id,退出后docker容器也退出,不常用

方法二:

# docker exec -it a54615a88787 /bin/bash    跟的是容器名或者id

方法三:

yum -y install util-linux

# docker inspect --format "``.`State`.`Pid`" stupefied_cray  最后面跟的是容器的名称
4899
# nsenter --target 4899 --mount --uts --ipc --net --pid

脚本

#!/bin/bash

CNAME=$1

CPID=$(docker inspect --format "``.`State`.`Pid`" $CNAME)

nsenter --target $CPID --mount --uts --ipc --net –pid


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

docker-3 基础命令

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

docker-3 基础命令

创建镜像创建镜像的方法有三种:基于已有的容器创建基于本地模板导入基于dockerfile基于已有的容器创建主要使用docker commit 命令,命令格式:docker commit [OPTIONS] CONTAINER [REPOSI
2023-01-31

linux命令基础(3)

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。find的使用格式如下:find <指定目录> <指定条件> <指定动作>- <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。- <指定条件>: 所要搜索的文
2023-01-31

Linux基础命令(3)

十二 lsof命令简介lsof(list open files) 是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 如传输控制协议 (TCP)
2023-01-31

HP-UX基础命令3

crontab -l 查看schedule列表crontab -e 编辑schedule列表   5    *    *    *    *    /opt/psb/bin/restart_logserv.sh               
2023-01-31

Docker有哪些基础命令

这篇文章主要为大家展示了“Docker有哪些基础命令”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Docker有哪些基础命令”这篇文章吧。一:概述使用docker或者docker help 可以
2023-06-04

Docker基础和常用命令详解

这篇文章主要介绍了Docker基础和常用命令方法的相关资料,需要的朋友可以参考下
2022-11-13

H3命令基础命令

2、h3c基本命令:   system view进入特权模式    display查看信息      curren当前配置    version版本       sysname更改主机名          undo取消(删除)     qu
2023-01-31

Linux基础命令之who命令

  在使用Linux系统的过程中由于一个人可能拥有多个用户名的缘故,往往会造成使用者不知道自己是在哪个用户名下进行的操作。那么我们有没有什么方便快捷的方法来查出我们是在哪个用户名下进行操作呢?为此在本文中编程学习网笔者就为大家介绍Linux中的who命令,让大家能够快速的了解当前使用的用户名。    ①
Linux基础命令之who命令
2024-04-18

Linux基础命令之kill命令

  相信大家在使用Linux的过程中都会遇到过某个程序出错导致系统锁死的情况,按照常规的思维我们会通过重启来重新启动系统。然而事实上在Linux中并不需要进行重启就能够完成出错程序的关闭操作。在Linux中我们可以通过使用"kill"命令来强制终结它。那么到底它的格式语法和作用又是什么呢?在本文中编程学习网笔者就为大家一一
Linux基础命令之kill命令
2024-04-18

Linux基础命令--slabtop

slabtopslabtop实时显示详细的内核板条缓存信息。它显示按所列排序条件之一排序的顶级缓存的列表。它还会显示一个统计信息头,其中填充了板坯层信息。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora、S
2023-06-05

Linux基础命令---csplit

csplit将文件按照指定的模式分割,默认的输出文件名是xx00、xx01、xx02等,指令会显示每个输出文件的大小。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法c
2023-06-05

Linux基础命令---bzcat

bzcat解压缩被bzip2压缩过的文件,将文件解压到标准输出,此命令只有一个选项-s。该指令对压缩过的二进制文件没有意义,因为二进制文件没有可读性。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openS
2023-06-05

Linux基础命令---zcat

zcat解压有gzip压缩的文件,将解压结果送到标准输出。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法zcat [-fhVL] 文件 2、选项列表选项说明-h |
2023-06-05

Linux基础命令---zip

zipzip是一种最通用的文件压缩方式,使用于unix、msdos、windows、OS等系统。如果在编译zip时包含bzip 2库,zip现在也支持bzip 2压缩。当将大于4GB的文件添加到存档中时,zip会自动使用Zip 64扩展名,
2023-06-06

Linux基础命令---ar

arar指令可以创建、修改库,也可以从库中提取单个模块。库是一个单独的文件,里面包含了按照特定结构组织起来的其他文件,我们称作member。归档文件通常是一个二进制文件,我们一般将归档文件当作库来使用。原始文件的内容、模式(权限)、时间戳、
2023-06-06

Linux基础命令---comm

comm逐行比较两个已经排序过的文件。结果以3列显示:第1列显示只在file1出现的内容,第2列显示只在file2出现的内容,第3列显示同时出现的内容。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、open
2023-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录