Docker安装(Linux版)与简单入门

Docker安装(Linux版)与简单入门

Scroll Down

1.安装docker CE

安装步骤参考:阿里云开发者社区 - 镜像站 - docker-ce 镜像

标题

Docker CE 是免费的 Docker 产品的新名称,Docker CE 包含了完整的 Docker 平台,非常适合开发人员和运维团队构建容器 APP。

配置方法

Ubuntu 14.04/16.04(使用 apt-get 进行安装)

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
#   docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
#   docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]

CentOS 7(使用 yum 进行安装)

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ee.repo
#   将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

CentOS 8 安装失败解决办法

为了尝鲜使用了阿里云的CentOS 8镜像,但是发现docker一直安装不成功,一直报缺少依赖,查询其他博主资料发现需要手动额外安装此依赖才可正常安装,此处感谢原作者

cnblogs昵称: Adrian·Ding

原博客文章地址:centos8.0安装docker

#添加阿里repo也可以正常安装
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装依赖
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm

#安装docker-ce
yum install docker-ce

#启动docker
systemctl start docker

安装校验

root@iZbp12adskpuoxodbkqzjfZ:$ docker version
Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64
 Experimental: false

CentOS 7/8 设置docker守护进程开机启动

以下适用于yum安装的各种服务

#查看已启动的服务
systemctl list-units --type=service

#查看是否设置开机启动
systemctl list-unit-files | grep enable

设置docker开机启动

#设置docker开机启动
systemctl enable docker.service

#关闭docker开机启动
systemctl disable docker.service

2.使用docker

2.1、docker信息

#查看docker版本
docker version

#查看docker信息
docker info

2.2、镜像相关

2.2.1、查看镜像

#列出本地镜像
docker images

#列出本地镜像(含中间映像层,默认情况下,过滤掉中间映像层)
docker images -a

#查看docker容器或镜像的详细信息命令,查看docker中正在运行的容器的挂载位置
docker inspect 容器或镜像ID

2.2.2、搜索镜像

#搜索仓库镜像,例:搜索tomcat镜像
docker search tomcat

# --filter=stars=600:只显示 starts>=600 的镜像
docker search --filter=stars=600 tomcat

# --no-trunc 显示镜像完整 DESCRIPTION 描述
docker search --no-trunc tomcat

# --automated :只列出 AUTOMATED=OK 的镜像
docker search  --automated tomcat

2.2.3、镜像下载

#下载镜像,例:从官方下载mysql(默认下载latest版本)
docker pull mysql

#下载指定版本镜像(镜像名:tag),例:从官方下载mysql,指定版本5.5
docker pull mysql:5.5

#下载仓库所有mysql镜像
docker pull -a mysql

#从指定仓库下载镜像
dokcer pull bitnami/mysql


2.2.4、镜像删除

#单个镜像删除(不指定版本tag,默认删除latest)
docker rmi mysql

#强制删除(针对基于镜像有运行的容器进程)
docker rmi -f mysql

#多个镜像删除,不同镜像间以空格间隔
docker rmi -f redis tomcat nginx

#删除本地全部镜像
docker rmi -f $(docker images -q)


2.2.5、查看镜像中得环境变量

# env :查看镜像中得环境变量
docker run tomcat env


2.3、容器相关

2.3.1、运行容器

#运行容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]


OPTIONS参数

#OPTIONS参数
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
--volume , 
-v: 绑定一个卷


示例使用

# 给tomcat指定一个名称(“tomcat-01”)并以后台方式(-d)运行
docker run --name tomcat-01 -d tomcat 


2.3.2、容器常用命令

#查看运行中的容器
docker ps

#查看所有容器
docker ps -a

#启动容器
docker start 容器ID
#停止容器
docker stop 容器ID
#删除容器
docker rm 容器ID

#端口映射 (-p 主机端口:容器端口) 
docker run -d -p 8088:8080 --name tomcat-01 tomcat


2.3.3、容器挂载目录

#将宿主机中的目录或文件挂载到dokcer容器中,例:将宿主机中的war包以挂载的形式发布到容器的tomcat中
docker run -d -p 8088:8080 -v /root/test.war:/usr/local/tomcat/webapps/test.war tomcat


2.3.4、拷贝数据(双向)

docker cp 容器ID:容器中文件的绝对路径 主机路径
docker cp 主机路径 容器ID:容器中文件的绝对路径 


示例:

#将主机/www/runoob目录拷贝到容器f12935a0b708的/www目录下
docker cp /www/runoob f12935a0b708:/www/

#将主机/www/runoob目录拷贝到容器f12935a0b708中,目录重命名为www
docker cp /www/runoob f12935a0b708:/www

#将容器f12935a0b708的/www目录拷贝到主机的/tmp目录中
docker cp  f12935a0b708:/www /tmp/


2.3.5、设置容器自动启动

#启动时加 --restart=always
docker run -d -p 8088:8080 --restart=always -v /root/test.war:/usr/local/tomcat/webapps/test.war tomcat


如果是已经过运行的项目则使用update更新

#tomcat-01可以指定为容器id或者容器名
docker update --restart=always tomcat-01


2.3.6、容器日志

docker logs [OPTIONS] CONTAINER

#OPTIONS参数说明
-f : 跟踪日志输出
--since :显示某个开始时间的所有日志
-t : 显示时间戳
--tail :仅列出最新N条容器日志


#查看tomcat-01容器日志,默认参数
docker logs tomcat-01
#查看tomcat-01容器日志,参数:-f  跟踪日志输出;-t   显示时间戳;--tail  仅列出最新N条容器日志;
docker logs -f -t --tail=20 tomcat-01
#查看容器tomcat-01从2020年01月01日后的最新10条日志。
docker logs --since="2020-01-01" --tail=10 tomcat-01


2.4、配置阿里下载源

docker的仓库地址是国外的,有时候下载非常慢,下一个java8花了2个小时还没下完,增加国内下载镜像会快很多,方法如下:

1、进入docker的宿主机目录

#进入docker目录
cd /etc/docker

#修改daemon.json文件,如果没有则新建,直接使用此命令即可
vim daemon.json


2、打开daemon.json文件,增加此配置

{

    "registry-mirrors":["https://almtd3fa.mirror.aliyuncs.com"] 
    
}


3、重启docker服务

service docker restart


再进行下载,速度就提升了很多,下载速度慢可以试试此方法