docker部署及基础命令

本文提供了一份详细的CentOS 7.5环境下Docker的安装教程,包括通过yum源和二进制文件两种安装方式,以及一个一键安装脚本。此外,还介绍了Docker的基本命令、镜像管理和容器操作。

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值