CENTOS-7.5 安装docker-CE
一、环境
linux:CentOS-7.5
docker:docker-19.03.5
二、安装docker-ce
1、yum安装
[root@localhost ~]# yum remove docker docker-client docker-client-latest docker-common \ docker-latest docker-latest-logrotate docker-logrotate docker-engine #卸载旧版本
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 #安装系统软件
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #添加阿里云yum源
[root@localhost ~]# yum -y install docker-ce #安装docker-ce
[root@localhost ~]# systemctl start docker #启动docker
2、二进制安装
阿里云地址:https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/,可选择其他版本这里以docker-19.03.5为例
[root@localhost ~]# wget https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/docker-19.03.5.tgz
[root@localhost ~]# tar -xf docker-19.03.5.tgz
[root@localhost ~]# cp docker/* /usr/bin/
[root@localhost ~]# cat /lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
[root@localhost ~]#systemctl daemon-reload
[root@localhost ~]#systemctl start docker
[root@localhost ~]#docker version
Client: Docker Engine - Community
Version: 19.03.5
API version: 1.40
Go version: go1.12.12
Git commit: 633a0ea838
Built: Wed Nov 13 07:22:05 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.5
API version: 1.40 (minimum version 1.12)
Go version: go1.12.12
Git commit: 633a0ea838
Built: Wed Nov 13 07:28:45 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec3683
3、基于centos7.5的一键安装脚本
[root@localhost ~]#cat install_docker_for_centos7.sh
#!/bin/bash
#
#********************************************************************
#Author: internet
#Date: 2020-6-24
#FileName: install_docker_for_centos7.sh
#Description: The test script
#Copyright (C): 2020 All rights reserved
#********************************************************************
COLOR="echo -e \\033[1;31m"
END="\033[m"
VERSION="19.03.5-3.el7"
wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo || { ${COLOR}"互联网连接失败,请检查网络配置!"${END};exit; }
yum clean all
yum -y install docker-ce-$VERSION docker-ce-cli-$VERSION || { ${COLOR}"Base,Extras的yum源失败,请检查yum源配置"${END};exit; }
#使用阿里做镜像加速
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://si7y70hh.mirror.aliyuncs.com"]
}
EOF
systemctl restart docker
docker version && ${COLOR}"Docker安装成功"${END} || ${COLOR}"Docker安装失败"${END}
[root@localhost ~]# chmod +x install_docker_for_centos7.sh
[root@localhost ~]# ./install_docker_for_centos7.sh
--2020-06-24 14:07:01-- https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 116.211.183.138, 182.242.146.239, 116.211.183.139, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|116.211.183.138|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2640 (2.6K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/docker-ce.repo.1”
100%[=====================================================================================================================>] 2,640 --.-K/s 用时 0s
2020-06-24 14:07:01 (258 MB/s) - 已保存 “/etc/yum.repos.d/docker-ce.repo.1” [2640/2640])
已加载插件:fastestmirror
正在清理软件源: base docker-ce-stable extras updates
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
已加载插件:fastestmirror
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/6): base/7/x86_64/group_gz | 153 kB 00:00:00
(2/6): docker-ce-stable/x86_64/updateinfo | 55 B 00:00:00
(3/6): extras/7/x86_64/primary_db | 194 kB 00:00:00
(4/6): base/7/x86_64/primary_db | 6.1 MB 00:00:00
(5/6): docker-ce-stable/x86_64/primary_db | 45 kB 00:00:00
(6/6): updates/7/x86_64/primary_db | 2.9 MB 00:00:01
匹配 1:docker-ce-cli-19.03.5-3.el7.x86_64 的软件包已经安装。正在检查更新。
正在解决依赖关系
--> 正在检查事务
---> 软件包 docker-ce.x86_64.3.19.03.5-3.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
===============================================================================================================================================================
Package 架构 版本 源 大小
===============================================================================================================================================================
正在安装:
docker-ce x86_64 3:19.03.5-3.el7 docker-ce-stable 24 M
事务概要
===============================================================================================================================================================
安装 1 软件包
总下载量:24 M
安装大小:104 M
Downloading packages:
docker-ce-19.03.5-3.el7.x86_64.rpm | 24 MB 00:00:04
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : 3:docker-ce-19.03.5-3.el7.x86_64 1/1
验证中 : 3:docker-ce-19.03.5-3.el7.x86_64 1/1
已安装:
docker-ce.x86_64 3:19.03.5-3.el7
完毕!
Client: Docker Engine - Community
Version: 19.03.12
API version: 1.40
Go version: go1.13.10
Git commit: 48a66213fe
Built: Mon Jun 22 15:46:54 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.5
API version: 1.40 (minimum version 1.12)
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:24:18 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
Docker安装成功
三、docker基本命令
1、基本命令
[root@localhost ~]# docker version #查看docker版本
[root@localhost ~]# docker info #查看docker详细信息
[root@localhost ~]# docker --help #查看docker命令
2、镜像命令
[root@localhost ~]# docker search tomcat #从Docker Hub上查找tomcat镜像
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
tomcat Apache Tomcat is an open source implementati… 2759 [OK]
tomee Apache TomEE is an all-Apache Java EE certif… 79 [OK]
dordoka/tomcat Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 base… 54 [OK]
bitnami/tomcat Bitnami Tomcat Docker Image 35 [OK]
kubeguide/tomcat-app Tomcat image for Chapter 1 28
consol/tomcat-7.0 Tomcat 7.0.57, 8080, "admin/admin" 17 [OK]
cloudesire/tomcat Tomcat server, 6/7/8 15 [OK]
aallam/tomcat-mysql Debian, Oracle JDK, Tomcat & MySQL 13 [OK]
arm32v7/tomcat Apache Tomcat is an open source implementati… 10
rightctrl/tomcat CentOS , Oracle Java, tomcat application ssl… 6 [OK]
maluuba/tomcat7-java8 Tomcat7 with java8. 5
unidata/tomcat-docker Security-hardened Tomcat Docker container. 4 [OK]
amd64/tomcat Apache Tomcat is an open source implementati… 2
jelastic/tomcat An image of the Tomcat Java application serv… 2
arm64v8/tomcat Apache Tomcat is an open source implementati… 2
ppc64le/tomcat Apache Tomcat is an open source implementati… 1
camptocamp/tomcat-logback Docker image for tomcat with logback integra… 1 [OK]
99taxis/tomcat7 Tomcat7 1 [OK]
oobsri/tomcat8 Testing CI Jobs with different names. 1
i386/tomcat Apache Tomcat is an open source implementati… 1
picoded/tomcat7 tomcat7 with jre8 and MANAGER_USER / MANAGER… 0 [OK]
secoresearch/tomcat-varnish Tomcat and Varnish 5.0 0 [OK]
cfje/tomcat-resource Tomcat Concourse Resource 0
appsvc/tomcat 0
s390x/tomcat Apache Tomcat is an open source implementati… 0
#STARS 关注度
[root@localhost ~]# docker search -s 30 tomcat 从Docker Hub上查找关注度大于30的tomcat镜像
[root@localhost ~]# docker pull tomcat #从Docker Hub上下载tomcat镜像。等价于:docker pull tomcat:latest
[root@localhost ~]# docker images #查看docker镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 2eb5a120304e 13 days ago 647MB
#PEPOSITORY:镜像的仓库源
#TAG:镜像的标签
#IMAGE ID:镜像ID
#CREATED:镜像创建时间
#SIZE:镜像大小
#同一个仓库源可以有多个TAG,表示这个仓库源的不同版本,我们使用REPOSITORY:TAG来定义不同的镜像。如果不指定一个镜像的版本标签,例如只使用tomcat,docker将默认使用tomcat:latest镜像
[root@localhost ~]# docker images -a #列出本地所有的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 2eb5a120304e 13 days ago 647MB
[root@localhost ~]# docker images -q #只显示镜像ID
[root@localhost ~]# docker images --digests #显示镜像的摘要信息
[root@localhost ~]# docker images --no-trunc显示完整的镜像信息
[root@localhost ~]# docker commit -m "提交的描述信息" -a "作者" 容器ID 要创建的目标镜像名称:[标签名]
[root@localhost ~]# docker commit -m "新的tomcat" -a "chirs_ren" f9e29e8455a5 mytomcat:1.2
[root@localhost ~]# docker rmi hello-world #从Docker中删除hello-world镜像
[root@localhost ~]# docker rmi -f hello-world #强制从Docker中删除hello-world镜像
[root@localhost ~]# docker rmi -f hello-world nginx #强制从Docker中删除hello-world镜像和nginx镜像
[root@localhost ~]# docker rmi -f $(docker images -q) #通过docker images -p查询到的镜像ID来强制删除所有镜像
Untagged: tomcat:latest
Untagged: tomcat@sha256:81c2a95e5b1b5867229d75255abe54928d505deb81c8ff8949b61fde1a5d30a1
Deleted: sha256:2eb5a120304e4e7ab6c901e2ca3ed7ea50e57cd4756818f847b1eaa4d34c3881
Deleted: sha256:020e9c85f973b9633036443c8608cf7f3172d711173ff7af930673087ea3d887
Deleted: sha256:813a36f23140b157a76870e5b5b91c191a39fd938d8015bade6ca671062b759c
Deleted: sha256:52f06f71d56ef812d695e8069da6b175d3a8095dfc5da3949e0c872411a617e0
Deleted: sha256:c9ef80d5f34210a78113974f64ce32386f5c28a6cf538c398daf76052d2abf99
Deleted: sha256:e313f84ea12ee09cf103147b76bf2fb372d40ccfed273e2389e96a56fb31e11e
Deleted: sha256:15239410c554dafb7f891f0d51def4992ead6d7307b4f224241d1c685b7ce493
Deleted: sha256:f863ffb247f4c239aeccf155b7c0d92e35403aed0c825690f6739a89a5901a7c
Deleted: sha256:d39c04f36d47ec7121d94577c33c2792aa6e5a5a2c1130ea0be67a96d4e42ba5
Deleted: sha256:7ef5d661de63acc27e877ff7098e93fd9d915f9688e8b585af1b3cccafd76243
Deleted: sha256:8803ef42039dcbe936755e9baae4bb7b19cb0fb6a438eb3992950cd0afef8e4f
3、容器命令
[root@localhost ~]# docker run [OPTIONS] IMAGE #根据镜像新建并启动容器。IMAGE是镜像ID或镜像名称
OPTIONS:
--name=“容器新名字”:为容器指定一个名称
-d:后台运行容器,并返回容器ID,也即启动守护式容器
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端,通常与-i同时使用
-P:随机端口映射
-p:指定端口映射,有以下四种格式:
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
[root@localhost ~]# docker run -d --name mynginx nginx #创建一个名字为mynginx,在后台运行的nginx容器
81c81e2d263837afce507a56384c0f1407484d3e4d6fdb1f1d8a8b8c7e3b34f8
[root@localhost ~]# docker ps #列出当前所有正在运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
81c81e2d2638 nginx "/docker-entrypoint.…" 6 seconds ago Up 5 seconds 80/tcp mynginx
[root@localhost ~]# docker ps -a #列出所有容器
[root@localhost ~]# docker ps -l #列出最近创建的容器
[root@localhost ~]# docker ps -n 3 #列出最近创建的3个容器
[root@localhost ~]# docker ps -q #列出正在运行容器id
[root@localhost ~]# docker ps --no-trunc #显示当前所有正在运行的容器完整信息
[root@localhost ~]# docker attach 容器ID #进入容器,当多个窗口进入容器后,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。
[root@localhost ~]# docker exec 容器ID #进入容器(推荐)
[root@lcoalhost ~]# docker exec -it 81c /bin/bash
root@81c81e2d2638:/#
[root@localhost ~]# exit #退出并停止容器
[root@localhost ~]# Ctrl+p+q #只退出容器,不停止容器
[root@localhost ~]# docker start 容器ID或容器名称 #启动容器
[root@localhost ~]# docker restart 容器ID或容器名称 #重新启动容器
[root@localhost ~]# docker stop 容器ID或容器名称 #停止容器
[root@localhost ~]# docker kill 容器ID或容器名称 #强制停止容器
[root@localhost ~]# docker rm 容器ID或容器名称 #删除容器
[root@localhost ~]# docker rm -f 容器ID或容器名称 #强制删除容器
[root@localhost ~]# docker rm -f $(docker ps -a -q) #删除所有容器
[root@localhost ~]# docker logs -f -t --since --tail 容器ID或容器名称 #查看容器日志
f:实时查看日志 -t:查看日志生成日期 --since:此参数指定了输出日志的开始时间,即指定时间之后产生的日志
[root@localhost ~]# docker logs -f -t --since='2020-06-24' --tail=10 14e
[root@localhost ~]# docker top 容器ID或容器名称 #查看容器内部的进程
[root@lcoalhost ~]# docker cp 容器ID:容器内的文件路径 宿主机路径从容器内拷贝文件到宿主机.
如:docker cp f9e29e8455a5:/tmp/yum.log /root
本文提供了一份详细的CentOS 7.5环境下Docker的安装教程,包括通过yum源和二进制文件两种安装方式,以及一个一键安装脚本。此外,还介绍了Docker的基本命令、镜像管理和容器操作。
1322

被折叠的 条评论
为什么被折叠?



