Docker基本操作

Docker是一个轻量级的基于进程的虚拟化解决方案。简单来说,Docker是将应用程序和运行环境一起打包成一个容器,进而可以发布到其他平台上运行。

环境:Ubuntu 18.04.1 LTS

安装Docker

root@jaking-virtual-machine:~# apt-get install -y docker-engineReading package lists... Done
Building dependency tree
Reading state information... Done
...

root@jaking-virtual-machine:~# docker versionClient:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.4
Git commit: e68fc7a Built: Fri Oct 19 19:43:14 2018
OS/Arch:linux/amd64 Experimental: falseServer:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.4
Git commit: e68fc7a Built: Thu Sep 27 02:39:50 2018
OS/Arch: linux/amd64 Experimental: falseroot@jaking-virtual-machine:~# systemctl start dockerroot@jaking-virtual-machine:~# systemctl enable dockerSynchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.Executing: /lib/systemd/systemd-sysv-install enable docker

搜索ubuntu相关的容器

root@jaking-virtual-machine:~# docker search ubuntuNAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 8838 [OK]
dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC 247 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 184 [OK]
consol/ubuntu-xfce-vnc Ubuntu container with "headless" VNC session… 136 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 95 [OK]
ubuntu-upstart Upstart is an event-based replacement for th… 92 [OK]

下载容器

root@jaking-virtual-machine:~# docker pull ubuntu-upstart
Using default tag: latest
latest: Pulling from library/ubuntu-upstart8387d9ff0016: Pull complete 3b52deaaf0ed: Pull complete 4bd501fad6de: Pull complete a3ed95caeb02: Pull complete a6dc1658c730: Pull complete 9ed623dca71b: Pull complete 998ee72febf9: Pull complete 437038dc2fba: Pull complete da0ee05a1a1d: Pull complete 1e1c3e99deb1: Pull complete 4fcc22d7b2a1: Pull complete 6c7dda5571e4: Pull complete Digest: sha256:597dfb1868012dcd04a705572dbc1542cb7598bce0eaa1c2656eb3acfc8b51d2
Status: Downloaded newer image for ubuntu-upstart:latest

查看容器的镜像

root@jaking-virtual-machine:~# docker images ubuntu-upstartREPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-upstart latest b28219773b9b 2 years ago 253MB

从上面的结果可以看到,容器已经成功下载。利用下载的ubuntu-upstart容器,可以运行一个简单的程序,此处以“Hello Docker”为例:

root@jaking-virtual-machine:~# docker run ubuntu-upstart /bin/echo Hello DockerHello Docker

还可以使用其他容器,如使用ubuntu作为容器,下载操作如下:

root@jaking-virtual-machine:~# docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
32802c0cfa4d: Pull complete
da1315cffa03: Pull complete
fa83472a3562: Pull complete
f85999a86bef: Pull complete
Digest: sha256:6d0e0c26489e33f5a6f0020edface2727db9489744ecc9b4f50c7fa671f23c49
Status: Downloaded newer image for ubuntu:latest
root@jaking-virtual-machine:~# docker images ubuntu
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 93fd78260bd1 10 days ago 86.2MB

Docker的容器操作

当Docker中包含了容器,就如同虚拟机中安装了操作系统一样,可以运行、安装软件、做一些设置。现在就可以运行之前下载的ubuntu:

root@jaking-virtual-machine:~# docker run -i -t ubuntu /bin/bash

运行一个名为ubuntu的容器#i选项表示捕获标准输入和输出;t选项表示分配的终端和控制台root@05559b460591:/# root@05559b460591:/# uname -aLinux 05559b460591 4.15.0-36-generic #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linuxroot@05559b460591:/# exit#退出容器exit

root@jaking-virtual-machine:~# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

从上面的命令可以看到,使用run命令运行了一个容器,但退出之后容器也关闭了,这不是想要的结果。这时可以使用选项d让容器一直在后台运行:

root@jaking-virtual-machine:~# docker run -d -i -t ubuntu /bin/bash
b19cc95aef9cb6f402062915b527864cf045debc65dbabd23a495cea32a138dd
root@jaking-virtual-machine:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b19cc95aef9c ubuntu "/bin/bash" 15 seconds ago Up 14 seconds kind_johnson05559b460591 ubuntu "/bin/bash" 35 minutes ago Exited (0) 9 minutes ago xenodochial_hypatia5bc78fd29b2a ubuntu-upstart "/bin/echo Hello Doc…" 42 minutes ago Exited (0) 42 minutes ago silly_jenningsc54bb6d664b7 ubuntu-upstart "/bin/echo Hello Doc…" 44 minutes ago Exited (0) 44 minutes ago jolly_thompson

从上面的命令输出可以看到一个ID为b19cc95aef9c的容器正在运行,这个ID号就是操作此容器的重要参数。
容器运行在后台时,可以使用attach登录正在运行的容器:

root@jaking-virtual-machine:~# docker attach b19cc95aef9croot@b19cc95aef9c:/# exit
exit
root@jaking-virtual-machine:~#

容器的操作还有很多命令,常用的操作还有:

docker cp :将容器中的文件复制到主机上docker rm:删除一个容器docker port:配置容器的端口转发docker start:启动一个容器docker stop:停止一个容器docker top:显示容器中的进程docker ps:列出容器docker logs:获取容器的日志除了以上这些操作外,Docker还有许多操作,可自行阅读相关文档了解。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容

  • 简述docker一些常用的操作 查看到docker是否正常运行docker info 返回所有docker所有容器...
    翼动晴空阅读 1,006评论 0 10
  • Docker架构总览 最核心的是 Docker Daemon 我们称之为 Docker 守护进程,也就是 Serv...
    河码匠阅读 371评论 0 1
  • 常用命令 docker环境信息 容器生命周期管理 docker run 功能: 从镜像启动容器 命令格式: doc...
    imsilence阅读 511评论 0 0
  • 基本命令 启动容器$ docker run IMAGE [COMMAND] [ARG...]run 在新容器中执行...
    萧格阅读 497评论 0 0
  • 2019年我就要20岁了,20到30,基本是人生重大事件的关键时期。基本要在这几年,我要选择好我的另一半,选择好我...
    我想下雪阅读 123评论 0 0