Docker的基本使用方法

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,本篇文章重点为大家讲解一下Docker的基本使用方法。

安装Docker

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

root@jaking-virtual-machine:~# docker version
Client:
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:      false

Server:
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:     false

root@jaking-virtual-machine:~# systemctl start docker
root@jaking-virtual-machine:~# systemctl enable docker
Synchronizing 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 ubuntu
NAME                                                   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-upstart
8387d9ff0016: 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-upstart
REPOSITORY          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 Docker
Hello 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 -a
Linux 05559b460591 4.15.0-36-generic #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
root@05559b460591:/# exit
#退出容器
exit
root@jaking-virtual-machine:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

命令可以看到使用run命令运行了一个容器但退出之后容器也关闭了这不是想要的结果-这时可以使用选项d让容器一直在后台运行” data-source-line=”114″>从上面的命令可以看到,使用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_johnson
05559b460591        ubuntu              "/bin/bash"              35 minutes ago      Exited (0) 9 minutes ago                        xenodochial_hypatia
5bc78fd29b2a        ubuntu-upstart      "/bin/echo Hello Doc…"   42 minutes ago      Exited (0) 42 minutes ago                       silly_jennings
c54bb6d664b7        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 b19cc95aef9c
root@b19cc95aef9c:/# exit
exit
root@jaking-virtual-machine:~#

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

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

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/9256.html

(0)
晴川运维晴川运维
上一篇 2025年6月15日
下一篇 2025年6月15日

相关推荐

  • Ubuntu更换默认终端具体方法

    终端是任何Linux系统的关键部分。它允许您通过shell访问Linux系统。虽说现在的Linux发行版,比如Ubuntu,CentOS等已经基本上可以采用GUI来完成绝大部分一般…

    Debian 2025年6月16日
  • 【Debian管理员手册】附录 B. 简短辅导课程

    尽管这本书的主要目标用户是管理员和高级用户,但是我们也不想忽视初学者。这篇附录是一篇讲述操作Unix 计算机基础内容。 B.1. Shell 和基本命令 在Uinx 世界…

    Debian 2025年6月8日
  • Linux下使用BTFS 在线观看种子视频

    BitTorrent文件共享(BTFS)是利用TRON网络和BitTorrent生态系统的下一代文件共享协议,本篇文章为大家讲解一下Linux下使用BTFS 在线观看种子视频具体方…

    Debian 2025年6月8日
  • 如何在 Debian/Ubuntu 上设置自动安全更新(无人值守更新)

    对于 linux 管理员来说重要的任务之一是让系统保持最新状态,这可以使得你的系统更加稳健并且可以避免不想要的访问与攻击。 在 Linux 上安装软件包是小菜一碟,用相似的方法我们…

    Debian 2025年6月8日
  • Linux查看内存版本具体方法

    Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,下面大家详细讲解一下查看Linux内核版本具体…

    Debian 2025年6月8日
  • Linux的发行版

    谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,Linux正在变得越来越流行。面对这么多的Linux发行版,打算从其他系统转到Linux系…

    Debian 2025年6月17日
  • 【Debian GNU/Linux 安装手册】C.2. 目录树

    C.2. 目录树 Debian GNU/linux 依照 文件系统层次标准 (Filesystem Hierarchy Standard) 安排文件以及文件命名。该标准让…

    Debian 2025年6月11日
  • 【Debian GNU/Linux 安装手册】2.5. 内存与磁盘空间的需求

    2.5. 内存与磁盘空间的需求 您必须至少有 780MB 的内存和 920MB 的硬盘空间来进行普通安装。注意这是最小的数字,要了解实际的情况,参阅第 3.4&…

    Debian 2025年6月8日
  • 通过Vim实时格式化代码

    Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。 Vim 有很…

    Debian 2025年6月8日
  • 各个Linux系统如何修改远程端口ssh端口?

    各个Linux系统如何修改远程端口ssh端口?   在 Linux 系统中,可以通过修改 SSH 配置文件来修改远程 SSH 端口。下面是不同 Linux 发行版中修改 …

    Debian 2025年6月20日

发表回复

登录后才能评论