1.在线安装
1.1安装docker-ce 社区版
uname -r
yum ‐y update
sudo yum remove ‐y docker*
yum install ‐y yum‐utils
#想安装Docker,需要先将依赖的环境全部下载下来,就像Maven依赖JDK一样
yum -y install yum-utils device-mapper-persistent-data lvm2
yum repolist all # 显示所有资源库
yum repolist enabled # 显示所有已启动的资源库
yum repolist disabled # 显示所有被禁用的资源库
#可以搭配grep使用,例如
yum repolist all | grep updates
yum repolist all | grep mysql
yum repolist all | grep nginx
yum-config-manager命令的本质是对/etc/yum.repos.d/(库数据的储存位置)文件夹下文件的增删查改,推荐使用yum-config-manager命令进行改动
#默认下载Docker会去国外服务器下载,速度较慢,可以设置为阿里云镜像源,速度更快
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
因为系统默认没有安装这个命令,这个命令在 yum-utils 包里,安装该包即可
# 执行此命令即可
yum -y install yum-utils
成功:
#这块不使用可以不运行
sudo yum-config-manager --enable docker-ce-nightly
sudo yum list docker-ce.x86_64 --showduplicates | sort -r
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
# 这是指定版本安装
sudo yum install ‐y docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io
systemctl start docker && systemctl enable docker
安装成功后,需要手动启动,设置为开机启动,并测试一下 Docker
#启动docker服务
systemctl start docker
#设置开机自动启动
systemctl enable docker
#测试
docker run hello-world
docker version
1.2配置阿里的数据源
阿里云的镜像加速器,阿里云docker镜像加速器
https://cr.console.aliyun.com/cn-shanghai/instances/mirrors
cd /etc/docker
daemon.json
无 daemon.json 文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://w2ng0i4d.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
有 daemon.json 文件
vim daemon.json
{
"registry-mirrors": ["https://w2ng0i4d.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
1.Docker官方的中央仓库:这个仓库是镜像最全的,但是下载速度较慢。
https://hub.docker.com/
2.国内的镜像网站:网易蜂巢,daoCloud等,下载速度快,但是镜像相对不全。
https://c.163yun.com/hub#/home
http://hub.daocloud.io/ (推荐使用)
3.在公司内部会采用私服的方式拉取镜像(添加配置)
#需要创建 /etc/docker/daemon.json,并添加如下内容
{
"registry-mirrors":["https://w2ng0i4d.mirror.aliyuncs.com","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com","http://hub-mirror.c.163.com"],
"insecure-registries":["ip:port"] #docker私服地址
}
#重启两个服务
systemctl daemon-reload
systemctl restart docker
1.3 验证安装
1.3.1常用命令
镜像操作
docker search nginx
以上列表包含五列,含义如下:
- NAME:镜像仓库名称。
- DESCRIPTION:镜像仓库描述。
- STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于 GitHub的 stars0
- OFFICAL:表示是否为官方仓库,该列标记为[0K]的镜像均由各软件的官方项目组创建和维护。
- AUTOMATED:表示是否是自动构建的镜像仓库
#从中央仓库拉取镜像到本地
#docker pull 镜像名称[:tag]
docker pull nginx
#举个栗子:docker pull daocloud.io/library/tomcat:8.5.15-jre8
docker images
以上列表含义如下
- REPOSITORY:镜像所属仓库名称。
- TAG:镜像标签。默认是 latest,表示最新。
- IMAGE ID:镜像 ID,表示镜像唯一标识。
- CREATED:镜像创建时间。
- SIZE: 镜像大小。
#使用 docker rmi命令即可删除指定镜像,强制删除加 -f
docker rmi nginx
#或者 根据 IMAGE ID 进行删除
docker rmi 605c77e624dd
#删除所有镜像
docker rmi $(docker images -q)
如果因为网络原因可以通过硬盘的方式传输镜像,虽然不规范,但是有效,但是这种方式导出的镜像名称和版本都是nul
#将本地的镜像导出
docker save -o 导出的路径 镜像id
docker save -o /usr/local/docker/images/nginx.tar 605c77e624dd #绝对路径
docker save -o nginx.tar 605c77e624dd #相对路径
#加载本地的镜像文件
docker load -i 镜像文件
docker load -i /usr/local/docker/images/nginx.tar #绝对路径
docker load -i nginx.tar #相对路径
#修改镜像文件
docker tag 镜像id 新镜像名称:版本
docker tag 605c77e624dd nginx:latest
容器操作
运行容器需要定制具体镜像,如果镜像不存在,会直接下载
#简单操作
docker run 镜像的标识|镜像的名称[:tag]
docker run nginx:latest #镜像的名称[:tag]
docker run 605c77e624dd #镜像的标识
#常用的参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[:tag]
#-d:代表后台运行容器
#-p 宿主机端口:容器端口:为了映射当前Linux的端口和容器的端口
#--name 容器名称:指定容器的名称
docker run -d -p 80:80 --name nginx nginx:latest #镜像的名称[:tag]
docker run -d -p 80:80 --name nginx1 605c77e624dd #镜像的标识
查看全部正在运行的容器信息
docker ps [-qa]
#-a 查看全部的容器,包括没有运行
#-q 只查看容器的标识
docker ps -a #查看全部的容器,包括没有运行
docker ps #查看全部运行的容器
#查看容器日志,以查看容器运行的信息
docker logs -f 容器id
#-f:可以滚动查看日志的最后几行
docker logs -f 7f622ffcf2ee
docker container logs f0b1c8ab3633
#可以进入容器的内部进行操作
docker exec -it 容器id bash
docker exec -it 7f622ffcf2ee bash
#退出容器内部
exit
#将宿主机的文件复制到容器内部的指定目录
docker cp 文件名称 容器id:容器内部路径
docker cp nginx.tar 7f622ffcf2ee:/
容器的启动,停止,删除等操作,后续会经常使用到
#启动停止运行的容器 docker start NAMES
docker start 容器id
docker start 7f622ffcf2ee
docker start nginx
#重新启动容器
docker restart 容器id
docker restart 7f622ffcf2ee
#停止指定的容器(删除容器前,需要先停止容器)
docker stop 容器id
docker stop 7f622ffcf2ee
#停止全部容器
docker stop $(docker ps -qa)
#删除指定容器
docker rm 容器id
docker rm 7f622ffcf2ee
#删除全部容器
docker rm $(docker ps -qa)
docker inspect aed4f80f4734
docker top aed4f80f4734
1.3.2 DockerFile文件
1.3.3 常用软件部署
1.4 卸载docker
yum remove ‐y docker*
rm ‐rf /etc/systemd/system/docker.service.d
rm ‐rf /var/lib/docker
rm ‐rf /var/run/docker
1.5 安装 Docker-Compose
1.5.1 docker-compose安装
19.03.X - 1.27.X
版本对应关系
#进入linux输入命令
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo curl ‐L "https://github.com/docker/compose/releases/download/1.28.6/docker‐compose‐$(uname ‐s)‐$(uname ‐m)" ‐o
/usr/local/bin/docker‐compose
#添加权限命令
chmod +x /usr/local/bin/docker-compose
docker -v
docker-compose -v