欢迎光临
我们一直在努力

如何在Ubuntu中安装Docker和Run Docker容器

Docker是一种开源且流行的操作系统级虚拟化(俗称“ 容器化 ”)技术,主要在Linux和Windows上运行。 Docker使用容器可以更轻松地创建,部署和运行应用程序。

使用容器 ,开发人员(和系统管理员)可以使用运行应用程序所需的一切来打包应用程序 – 代码,运行时,库,环境变量和配置文件,并将它们作为一个包发送出去。 是的,真是太好了!

在本文中,我们将向您展示如何安装Docker CE(Community Edition) ,在Ubuntu发行版上创建和运行Docker容器。

在Ubuntu中安装Docker CE(Community Edition)

1.要安装Docker CE ,首先需要删除旧版本的Docker ,使用以下命令从系统中调用docker.iodocker.iodocker.io docker-engine

$ sudo apt-get remove docker docker-engine docker.io containerd runc

2.接下来,您需要设置Docker存储库以使用以下命令从存储库安装和更新Docker。

$ sudo apt-get update$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

3.使用以下命令更新apt软件包索引并安装最新版本的Docker CE

$ sudo apt-get update$ sudo apt-get install docker-ce docker-ce-cli containerd.io
在Ubuntu中安装Docker CE
Reading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following additional packages will be installed:  aufs-tools cgroupfs-mount pigzThe following NEW packages will be installed:  aufs-tools cgroupfs-mount containerd.io docker-ce docker-ce-cli pigz0 upgraded, 6 newly installed, 0 to remove and 167 not upgraded.Need to get 50.7 MB of archives.After this operation, 243 MB of additional disk space will be used.Do you want to continue? [Y/n] yGet:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 pigz amd64 2.4-1 [57.4 kB]Get:2 https://download.docker.com/linux/ubuntu bionic/stable amd64 containerd.io amd64 1.2.4-1 [19.9 MB]Get:3 http://archive.ubuntu.com/ubuntu bionic/universe amd64 aufs-tools amd64 1:4.9+20170918-1ubuntu1 [104 kB]Get:4 http://archive.ubuntu.com/ubuntu bionic/universe amd64 cgroupfs-mount all 1.4 [6,320 B]Get:5 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce-cli amd64 5:18.09.3~3-0~ubuntu-bionic [13.1 MB]Get:6 https://download.docker.com/linux/ubuntu bionic/stable amd64 docker-ce amd64 5:18.09.3~3-0~ubuntu-bionic [17.4 MB]Fetched 50.7 MB in 7s (7,779 kB/s)                                     ...

4.成功安装Docker CE软件包后,该服务应自动启动并自动启用以在系统引导时启动,您可以使用以下命令检查其状态。

$ sudo systemctl status docker 
检查Docker CE状态
 docker.service - Docker Application Container Engine   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)   Active: active (running) since Wed 2019-03-06 08:06:42 UTC; 2min 18s ago     Docs: https://docs.docker.com Main PID: 5274 (dockerd)    Tasks: 8   CGroup: /system.slice/docker.service           └─5274 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockMar 06 08:06:41 howtoing dockerd[5274]: time="2019-03-06T08:06:41.562587408Z" level=warning msg="Your kernel does not support cgroup rt runtime"Mar 06 08:06:41 howtoing dockerd[5274]: time="2019-03-06T08:06:41.562767803Z" level=warning msg="Your kernel does not support cgroup blkio weight"Mar 06 08:06:41 howtoing dockerd[5274]: time="2019-03-06T08:06:41.562966844Z" level=warning msg="Your kernel does not support cgroup blkio weight_device"Mar 06 08:06:41 howtoing dockerd[5274]: time="2019-03-06T08:06:41.565298457Z" level=info msg="Loading containers: start."Mar 06 08:06:41 howtoing dockerd[5274]: time="2019-03-06T08:06:41.950942467Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferMar 06 08:06:42 howtoing dockerd[5274]: time="2019-03-06T08:06:42.036964493Z" level=info msg="Loading containers: done."Mar 06 08:06:42 howtoing dockerd[5274]: time="2019-03-06T08:06:42.156279378Z" level=info msg="Docker daemon" commit=774a1f4 graphdriver(s)=overlay2 version=18.09.3Mar 06 08:06:42 howtoing dockerd[5274]: time="2019-03-06T08:06:42.157145045Z" level=info msg="Daemon has completed initialization"Mar 06 08:06:42 howtoing systemd[1]: Started Docker Application Container Engine.Mar 06 08:06:42 howtoing dockerd[5274]: time="2019-03-06T08:06:42.224229999Z" level=info msg="API listen on /var/run/docker.sock"

5.最后,通过运行hello-world映像验证Docker CE是否已正确安装。

$ sudo docker run hello-world
验证Docker CE安装
Hello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.    (amd64) 3. The Docker daemon created a new container from that image which runs the    executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it    to your terminal.To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID: https://hub.docker.com/For more examples and ideas, visit: https://docs.docker.com/get-started/

在Ubuntu中学习基本的Docker命令

6.要获取有关Docker的信息,请运行以下命令。

$ sudo docker infoKernel Version: 5.0.0-050000-genericOperating System: Ubuntu 18.04.1 LTSOSType: linuxArchitecture: x86_64CPUs: 1Total Memory: 1.452GiBName: howtoingID: FWSB:IRIF:DYL7:PRB5:Y66E:37MY:ISPO:HZVY:6YJO:2IYL:TO6Y:GNB7Docker Root Dir: /var/lib/dockerDebug Mode (client): falseDebug Mode (server): falseRegistry: https://index.docker.io/v1/Labels:Experimental: falseInsecure Registries: 127.0.0.0/8Live Restore Enabled: falseProduct License: Community Engine

7.要获取有关Docker版本的信息,请运行以下命令。

$ sudo docker versionClient: Version:           18.09.3 API version:       1.39 Go version:        go1.10.8 Git commit:        774a1f4 Built:             Thu Feb 28 06:53:11 2019 OS/Arch:           linux/amd64 Experimental:      falseServer: Docker Engine - Community Engine:  Version:          18.09.3  API version:      1.39 (minimum version 1.12)  Go version:       go1.10.8  Git commit:       774a1f4  Built:            Thu Feb 28 05:59:55 2019  OS/Arch:          linux/amd64  Experimental:     false

8.要获取所有可用Docker命令的列表,请在终端上运行docker

$ dockerUsage:	docker [OPTIONS] COMMANDA self-sufficient runtime for containersOptions:      --config string      Location of client config files (default "/home/howtoing/.docker")  -D, --debug              Enable debug mode  -H, --host list          Daemon socket(s) to connect to  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")      --tls                Use TLS; implied by --tlsverify      --tlscacert string   Trust certs signed only by this CA (default "/home/howtoing/.docker/ca.pem")      --tlscert string     Path to TLS certificate file (default "/home/howtoing/.docker/cert.pem")      --tlskey string      Path to TLS key file (default "/home/howtoing/.docker/key.pem")      --tlsverify          Use TLS and verify the remote  -v, --version            Print version information and quitManagement Commands:  builder     Manage builds  config      Manage Docker configs  container   Manage containers  engine      Manage the docker engine  image       Manage images  network     Manage networks  node        Manage Swarm nodes  plugin      Manage plugins  secret      Manage Docker secrets  service     Manage services  stack       Manage Docker stacks  swarm       Manage Swarm  system      Manage Docker  trust       Manage trust on Docker images  volume      Manage volumes....

在Ubuntu中下载Docker镜像

9.要运行Docker容器,首先需要从Docker Hub下载映像 – 从其存储库提供免费映像。

例如,要下载名为CentOS 7的Docker镜像,请发出以下命令。

$ sudo docker search centosNAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATEDcentos                             The official build of CentOS.                   5227                [OK]                ansible/centos7-ansible            Ansible on Centos7                              120                                     [OK]jdeathe/centos-ssh                 CentOS-6 6.10 x86_64 / CentOS-7 7.5.1804 x86   107                                     [OK]consol/centos-xfce-vnc             Centos container with "headless" VNC session   81                                      [OK]imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              50                                      [OK]centos/mysql-57-centos7            MySQL 5.7 SQL database server                   47                                      tutum/centos                       Simple CentOS docker image with SSH access      43                                      gluster/gluster-centos             Official GlusterFS Image [ CentOS-7 +  Glust   40                                      [OK]openshift/base-centos7             A Centos7 derived base image for Source-To-I   39                                      centos/postgresql-96-centos7       PostgreSQL is an advanced Object-Relational    37                                      centos/python-35-centos7           Platform for building and running Python 3.5   33                                      kinogmt/centos-ssh                 CentOS with SSH                                 26                                      [OK]openshift/jenkins-2-centos7        A Centos7 based Jenkins v2.x image for use w   20                                      centos/php-56-centos7              Platform for building and running PHP 5.6 ap   19                                      pivotaldata/centos-gpdb-dev        CentOS image for GPDB development. Tag names   10                                      openshift/wildfly-101-centos7      A Centos7 based WildFly v10.1 image for use    6                                       openshift/jenkins-1-centos7        DEPRECATED: A Centos7 based Jenkins v1.x ima   4                                       darksheer/centos                   Base Centos Image -- Updated hourly             3                                       [OK]pivotaldata/centos                 Base centos, freshened up a little with a Do   2                                       pivotaldata/centos-mingw           Using the mingw toolchain to cross-compile t   2                                       pivotaldata/centos-gcc-toolchain   CentOS with a toolchain, but unaffiliated wi   1                                       openshift/wildfly-81-centos7       A Centos7 based WildFly v8.1 image for use w   1                                       blacklabelops/centos               CentOS Base Image! Built and Updates Daily!     1                                       [OK]smartentry/centos                  centos with smartentry                          0                                       [OK]jameseckersall/sonarr-centos       Sonarr on CentOS 7                              0                                       [OK]

10.根据您的要求确定要运行的映像后,通过运行以下命令在本地下载(在这种情况下,将下载并使用CentOS映像)。

$ docker pull centosUsing default tag: latestlatest: Pulling from library/centosa02a4930cb5d: Pull complete Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426Status: Downloaded newer image for centos:latest

11.要列出主机上所有可用的Docker映像,请运行以下命令。

$ sudo docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEhello-world         latest              fce289e99eb9        2 months ago        1.84kBcentos              latest              1e1148e4cc2c        3 months ago        202MB

12.如果您不再需要Docker镜像,可以使用以下命令将其删除。

$ sudo docker rmi centosUntagged: centos:latestUntagged: [email protected]:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426Deleted: sha256:1e1148e4cc2c148c6890a18e3b2d2dde41a6745ceb4e5fe94a923d811bf82ddbDeleted: sha256:071d8bd765171080d01682844524be57ac9883e53079b6ac66707e192ea25956

在Ubuntu中运行Docker容器

13.为了创建和运行Docker容器,首先需要在下载的CentOS映像中运行命令,因此基本命令是使用cat命令检查容器内的分发版本文件,如图所示。

$ docker run centos cat /etc/issue

14.要再次运行容器,首先需要通过运行以下命令来获取Container ID或Name ,该命令将显示正在运行和已停止的容器的列表:

$ sudo docker ps -lCONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                          PORTS               NAMES0ddfa81c5779        centos              "cat /etc/issue"    About a minute ago   Exited (0) About a minute ago                       elastic_shirley

15.获取Container ID或Name后 ,可以使用以下命令启动容器:

$ sudo docker start 0ddfa81c5779OR$ sudo docker start elastic_shirley

这里,字符串0ddfa81c5779表示容器ID, 0ddfa81c5779表示容器名称。

16.通过指定Container ID或Name来停止正在运行的容器运行docker stop命令。

$ sudo docker stop 0ddfa81c5779OR$ sudo docker stop elastic_shirley

17.更好的方法是,您不必记住容器ID,就是使用--name选项为您创建的每个容器定义唯一的名称,如图所示。

$ docker run --name myname centos cat /etc/issue

18.要将Linux命令连接并运行到容器中,请发出以下命令。

$ docker run -it centos bash[[email protected] /]# uname -aLinux 6213ec547863 5.0.0-050000-generic #201903032031 SMP Mon Mar 4 01:33:18 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux[[email protected] /]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 

19.要从正在运行的容器会话中退出并返回主机,必须键入exit命令,如图所示。

$ exit

这就是基本的容器操作。 如果您对本文有任何疑问或意见,请使用下面的反馈表与我们联系。

赞(0) 打赏
未经允许不得转载:老赵部落 » 如何在Ubuntu中安装Docker和Run Docker容器

评论 抢沙发