Docker基础安装使用
2020-02-22
作者:刘子毅
创建yum源
[root@bogon ~]#
[root@bogon ~]# yum-config-manager --add-repo https://https://www.doczj.com/doc/2716385502.html,/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: https://https://www.doczj.com/doc/2716385502.html,/linux/centos/docker-ce.repo
grabbing file https://https://www.doczj.com/doc/2716385502.html,/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
Could not fetch/save url https://https://www.doczj.com/doc/2716385502.html,/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 14] curl#7 - "Failed connect to https://www.doczj.com/doc/2716385502.html,:443; Operation now in progress"
[root@bogon ~]#
[root@bogon ~]#
链接无法解析改为使用阿里的yum源,操作如下:
[root@bogon ~]# yum-config-manager --add-repo https://www.doczj.com/doc/2716385502.html,/docker-ce/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: https://www.doczj.com/doc/2716385502.html,/docker-ce/linux/centos/docker-ce.repo
grabbing file https://www.doczj.com/doc/2716385502.html,/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
安装最新的docker
[root@bogon ~]#
[root@bogon ~]# yum install docker-ce
Loaded plugins: fastestmirror, langpacks
Existing lock /var/run/yum.pid: another copy is running as pid 9034.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: PackageKit
Memory : 119 M RSS (1.0 GB VSZ)
Started: Fri Feb 21 19:28:47 2020 - 07:27 ago
State : Sleeping, pid: 9034
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: PackageKit
Memory : 119 M RSS (1.0 GB VSZ)
Started: Fri Feb 21 19:28:47 2020 - 07:29 ago
State : Sleeping, pid: 9034
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: PackageKit
Memory : 119 M RSS (1.0 GB VSZ)
Started: Fri Feb 21 19:28:47 2020 - 08:12 ago
State : Sleeping, pid: 9034
^C
Exiting on user cancel.
此处发下yum被进程号为9034占用,直接kill
[root@bogon ~]# ps aux | grep yum
root 9034 2.5 12.2 1041184 121668 ? SN 19:28 0:13 /usr/bin/python /usr/share/PackageKit/helpers/yum/yumBackend.py get-updates none
root 10322 0.0 0.0 112708 976 pts/0 S+ 19:37 0:00 grep --color=auto yum
[root@bogon ~]# kill -9 9034
[root@bogon ~]# ps aux | grep yum
root 10338 0.0 0.0 112708 976 pts/0 R+ 19:37 0:00 grep --color=auto yum
[root@bogon ~]#
[root@bogon ~]#
[root@bogon ~]#
[root@bogon ~]#
重新安装docker,如下:
[root@bogon ~]# yum install docker-ce
BDB2053 Freeing read locks for locker 0x9ba: 9034/140061293627200
BDB2053 Freeing read locks for locker 0x9bc: 9034/140061293627200
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: https://www.doczj.com/doc/2716385502.html,
* extras: https://www.doczj.com/doc/2716385502.html,
* updates: https://www.doczj.com/doc/2716385502.html,
docker-ce-stable
| 3.5 kB 00:00:00
(1/2): docker-ce-stable/x86_64/primary_db | 38 kB 00:00:00
(2/2): docker-ce-stable/x86_64/updateinfo | 55 B 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package docker-ce.x86_64 3:19.03.6-3.el7 will be installed
--> Processing Dependency: container-selinux >= 2:2.74 for package: 3:docker-ce-19.03.6-3.el7.x86_64
--> Processing Dependency: containerd.io >= 1.2.2-3 for package: 3:docker-ce-19.03.6-3.el7.x86_64
--> Processing Dependency: docker-ce-cli for package: 3:docker-ce-19.03.6-3.el7.x86_64
--> Running transaction check
---> Package container-selinux.noarch 2:2.107-3.el7 will be installed
---> Package containerd.io.x86_64 0:1.2.10-3.2.el7 will be installed
---> Package docker-ce-cli.x86_64 1:19.03.6-3.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================== =============================================================
Package Arch Version Repository Size
=============================================================================== =============================================================
Installing:
docker-ce x86_64 3:19.03.6-3.el7 docker-ce-stable 24 M
Installing for dependencies:
container-selinux noarch 2:2.107-3.el7 extras 39 k
containerd.io x86_64 1.2.10-3.2.el7 docker-ce-stable 23 M
docker-ce-cli x86_64 1:19.03.6-3.el7 docker-ce-stable 40 M
Transaction Summary
=============================================================================== =============================================================
Install 1 Package (+3 Dependent packages)
Total download size: 87 M
Installed size: 363 M
Is this ok [y/d/N]: y
Downloading packages:
warning:
/var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-19.03.6-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY ] 1.3 MB/s | 39 MB 00:00:36 ETA
Public key for docker-ce-19.03.6-3.el7.x86_64.rpm is not installed
(1/4): docker-ce-19.03.6-3.el7.x86_64.rpm | 24 MB 00:00:36
warning: /var/cache/yum/x86_64/7/extras/packages/container-selinux-2.107-3.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY ] 1.3 MB/s | 45 MB 00:00:32 ETA
Public key for container-selinux-2.107-3.el7.noarch.rpm is not installed
(2/4): container-selinux-2.107-3.el7.noarch.rpm | 39 kB 00:00:41
(3/4): containerd.io-1.2.10-3.2.el7.x86_64.rpm | 23 MB 00:01:01
(4/4): docker-ce-cli-19.03.6-3.el7.x86_64.rpm | 40 MB 00:00:42
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total
1.1 MB/s | 87 MB 00:01:19
Retrieving key from https://https://www.doczj.com/doc/2716385502.html,/docker-ce/linux/centos/gpg
Importing GPG key 0x621E9F35:
Userid : "Docker Release (CE rpm)
Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
From : https://https://www.doczj.com/doc/2716385502.html,/docker-ce/linux/centos/gpg
Is this ok [y/N]: y
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
Userid : "CentOS-7 Key (CentOS 7 Official Signing Key)
Package : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 2:container-selinux-2.107-3.el7.noarch 1/4
Installing : containerd.io-1.2.10-3.2.el7.x86_64 2/4
Installing : 1:docker-ce-cli-19.03.6-3.el7.x86_64 3/4
Installing : 3:docker-ce-19.03.6-3.el7.x86_64 4/4
Verifying : 3:docker-ce-19.03.6-3.el7.x86_64 1/4
Verifying : 1:docker-ce-cli-19.03.6-3.el7.x86_64 2/4
Verifying : containerd.io-1.2.10-3.2.el7.x86_64 3/4
Verifying : 2:container-selinux-2.107-3.el7.noarch 4/4
Installed:
docker-ce.x86_64 3:19.03.6-3.el7
Dependency Installed:
container-selinux.noarch 2:2.107-3.el7 containerd.io.x86_64 0:1.2.10-3.2.el7 docker-ce-cli.x86_64 1:19.03.6-3.el7
Complete!
安装成功,启动docker进程:
[root@bogon ~]#
[root@bogon ~]# systemctl start docker
[root@bogon ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@bogon ~]#
查看docker状态
[root@bogon ~]# systemctl status docker
●docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2020-02-21 19:42:29 PST; 22s ago
Docs: https://https://www.doczj.com/doc/2716385502.html,
Main PID: 10553 (dockerd)
CGroup: /system.slice/docker.service
└─10553 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Feb 21 19:42:27 docker dockerd[10553]: time="2020-02-21T19:42:27.535045863-08:00" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Feb 21 19:42:27 docker dockerd[10553]: time="2020-02-21T19:42:27.535081253-08:00" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/container... module=grpc
Feb 21 19:42:27 docker dockerd[10553]: time="2020-02-21T19:42:27.535107105-08:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Feb 21 19:42:27 docker dockerd[10553]: time="2020-02-21T19:42:27.635007791-08:00" level=info msg="Loading containers: start."
Feb 21 19:42:28 docker dockerd[10553]: time="2020-02-21T19:42:28.354209593-08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemo... IP address"
Feb 21 19:42:29 docker dockerd[10553]: time="2020-02-21T19:42:29.097833464-08:00" level=info msg="Loading containers: done."
Feb 21 19:42:29 docker dockerd[10553]: time="2020-02-21T19:42:29.182055014-08:00" level=info msg="Docker daemon" commit=369ce74a3c graphdriver(s)=overlay2 version=19.03.6 Feb 21 19:42:29 docker dockerd[10553]: time="2020-02-21T19:42:29.182193961-08:00" level=info msg="Daemon has completed initialization"
Feb 21 19:42:29 docker systemd[1]: Started Docker Application Container Engine.
Feb 21 19:42:29 docker dockerd[10553]: time="2020-02-21T19:42:29.258868440-08:00" level=info msg="API listen on /var/run/docker.sock"
Hint: Some lines were ellipsized, use -l to show in full.
[root@bogon ~]#
创建名为konggu的容器,并使用httpd的镜像源:
[root@bogon ~]# docker create --name konggu httpd
Unable to find image 'httpd:latest' locally
latest: Pulling from library/httpd
bc51dd8edc1b: Pull complete
dca5bc65e18f: Pull complete
ccac3445152a: Pull complete
8515f2015fbc: Pull complete
e35494488b8c: Pull complete
Digest: sha256:b783a610e75380aa152dd855a18368ea2f3becb5129d0541e2ec8b662cbd8afb Status: Downloaded newer image for httpd:latest
7a694fe59d001ea5b132de17e8bf3e0a1400853acab2a16b1da2507a3ceb3aa4
查看容器状态
[root@bogon ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a694fe59d00 httpd "httpd-foreground" 48 seconds ago Created konggu
启动容器:
[root@bogon ~]# docker start konggu
konggu
再次查看状态
[root@bogon ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a694fe59d00 httpd "httpd-foreground" About a minute ago Up 2 seconds 80/tcp konggu
[root@bogon ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a694fe59d00 httpd "httpd-foreground" 2 minutes ago Up 49 seconds 80/tcp konggu
进入容器:
[root@bogon ~]# docker exec -it konggu bash
root@7a694fe59d00:/usr/local/apache2#
root@7a694fe59d00:/usr/local/apache2#
root@7a694fe59d00:/usr/local/apache2#
root@7a694fe59d00:/usr/local/apache2# ls
bin build cgi-bin conf error htdocs icons include logs modules
[root@bogon ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a694fe59d00 httpd "httpd-foreground" 7 minutes ago Up 5 minutes 80/tcp konggu
删除容器
[root@bogon ~]# docker stop konggu
konggu
[root@bogon ~]# docker rm konggu
konggu
[root@bogon ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
重新创建带端口号的容器
[root@bogon ~]# docker run --name konggu -d -p 8080:80 httpd
19f0c0b40353114a639fd02f3d808f8b142c714ccec24f9cf14f5cb66af02409
[root@bogon ~]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
19f0c0b40353 httpd "httpd-foreground" 12 seconds ago Up 10 seconds 0.0.0.0:8080->80/tcp konggu
[root@bogon ~]# docker exec -it konggu bash
root@19f0c0b40353:/usr/local/apache2#
root@19f0c0b40353:/usr/local/apache2# cd htdocs/
root@19f0c0b40353:/usr/local/apache2/htdocs# ls
index.html
root@19f0c0b40353:/usr/local/apache2/htdocs# echo "konggu" > index.html root@19f0c0b40353:/usr/local/apache2/htdocs#
成功修改了web内容,实验成功。
Docker容器技术与微服务解决方案
目录 一、前言 (3) 二、容器技术简介 (3) 三、Docker 简介 (4) 四、Docker 的组成 (6) 五、Docker 的实现 (8) 六、Docker 的生态圈 (15) 七、总结 (16)
一、前言 Docker 是最近在云计算领域出现的新技术。目前,Docker 和以其为代表的容器技术的热度已经改过了之前的OpenStack。Docker 以及其所代表的容器技术的流行,即使因为软件技术的进步,更是由于其符合云计算对软件领域所带来新思想。在如今的互联网和企业应用开发领域,微服务和DevOps 是两个思想颇为深入人心。而Docker 技术的出现和其对整个容器技术及其生态圈发展的促进,解决了这个微服务和DevOps 这两个思想实践中的很多难题,使得前面两种思想大规模地实现成为了可能。所以,我们有必要地深入了解一下Docker 这个技术,看看它会对云计算时代的软件开发产生什么样的影响。 本文将介绍如下内容 1.什么是容器技术 2.什么是Docker 3.Docker 是如何实现的 4.为什么要使用Docker 至于Docker 的用法,不在这里做介绍。Docker 的入门使用,可以前往Docker 官网。各种高级用法、技巧、经验,可以前往技术网站CSDN、InfoQ 和CoreOS、Centurylink Labs 等这些使用Docker 的云计算厂商的网站。 二、容器技术简介 容器技术有时会被称为轻量化虚拟技术。但不同于基于Hypervisor 的传统虚拟化技术,容器技术并不会虚拟硬件。容器本身和容器内的进程都是运行在宿主Linux 系统的内核之
《Docker技术集群与应用》课程测试试卷说明:本试卷由选择题和简答题两部分组成,满分100分。 一、选择题 说明:共30题,每题2分,共计60分。 针对以下题目,请选择最符合题目要求的答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。 1.下列关于Docker核心概念的说法错误的是()。 A.Docker镜像是创建容器的基础,是Docker容器的只读模板 B.Docker容器可以看作是一个简易版的Linux环境,用来运行和隔离应用 C.Docker仓库是集中保存镜像的地方,可使用push命令上传自己的镜像 D.Docker容器是从镜像创建的运行实例,容器创建后容器之间可以相互可见 2.下列()属于安装Docker时所需要的依赖软件包。 A.yum-utils B. device-mapper-devel C. lvm2 D. python-docker 3.对于Docker镜像的描述错误的是()。 A.镜像文件是由若干层组成,是实现增量保存和更新的基础 B.用户从私有仓库下载镜像时,需要在仓库名称前指定完整的注册服务器地址 C.可以通过命令docker info 0b8d572d1c7d(镜像ID)查看镜像详细信息
D.可以使用docker tag命令为本地镜像添加新的标签 4.本地有一镜像httpd:new,其ID为2d1935fb3ka0,下列可成功删除该镜像的命令是 ()。 A.docker rm httpd:new B.docker rmi httpd:new C.docker rm 2d1935fb3ka0 D.docker image rm 2d1935fb3ka0 5.Docker镜像命令docker images执行后,结果内不包括的列是()。 A.C REATED B.T IME C.S IZE D.TAG 6.下列关于Docker容器说法正确的是()。 A.通过Dockerfile构建的镜像,由这些镜像启动的容器内应用都是在后台运行的 B.可以通过命令docker exec –it 容器ID /bin/bash 来进入容器内部 C.可以使用docker rm 容器ID 命令来删除一个正在运行中的容器 D.Docker的默认存储目录在/var/lib/docker 7.下列()命令执行后可以查看镜像ID为0b8d572d1c7d的详细信息。