注:官方建议docker运行在centos7 以上的系统
2.1安装Docker
#1.下载关于Docker的依赖环境
yum -y install yum-utils devoce-mapper-persistent-data lvm2
#2.设置一个下载docker的镜像源(如果不设置下载镜像源,默认从docker官方下载,在国外)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#3安装
yum makacache fast
yum -y intall docker-ce
docker 安装过程中出现过这样的错误
Error downloading packages:
3:docker-ce-19.03.12-3.el7.x86_64: [Errno 256] No more mirrors to try.
containerd.io-1.2.13-3.2.el7.x86_64: [Errno 256] No more mirrors to try.
参考了以下文章,得到了实质性的解决
https://blog.51cto.com/14888889/2515113
#4. 启动。并设置为开机自动启动。测试
#启动docker服务
systemctl start docker
#设置开机自动启动
systemctl enable docker
#测试
docker run hello-world
2.2Docker的中央仓库
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://registry.docker-cn.com"],
"insecure-registries":["ip:port"]
}
#重启两个服务
systemctl daemon-reload
systemctl restart docker
2.3镜像的操作
#1.拉取镜像到本地
docker pull 镜像名称[:tag]
#举个例子
拉取tomcat
docker pull daocloud.io/library/tomcat:8.5.15-jre8
#2.查看全部本地的镜像
docker images
#3.删除本地镜像
docker rmi 镜像的标识(IMAGE ID)。
Error response from daemon: conflict: unable to delete bf756fb1ae65 (must be forced) - image is being used by stopped container 7b46d42785f8
代表镜像正在运行,不能删除,必须先停止运行
#4.镜像的导入导出(不规范)
#将本地的镜像导出
docker save -o 导出的路径 镜像id
#加载本地镜像文件
docker load -i 镜像文件(加载的镜像没有名称)
#修改镜像名称
docker tag 镜像id 名称:版本号
例如:
docker tag b8 tomcat:8.5
2.4容器的操作
#1.运行容器
#简单操作
docker run 镜像id或者镜像名称[:tag]
#常用的参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像id或者镜像名称[:tag]
# -d 代表后台运行容器
# -p 宿主机端口:容器端口 为了映射当前linux的端口和容器的端口
# --name 容器名称 ; 指定容器的名称
#2.查看正在运行的容器
docker ps -q[-a][-qa]
# -a:查看全部容器,包括没有运行
# -q:只查看容器的标识,不查看其他信息
#3.查看容器的日志
docker logs -f 容器id
#-f:可以滚动查看日志的最后几行
#4.进入到容器内部
docker exec -it 容器id bash
#5.删除容器(删除容器前,需要先停止容器)
#停止指定容器
docker stop 容器id
#停止全部容器
docker stop $(docker ps -qa)
#删除指定容器
docker rm 容器id
#删除全部容器
docker rm $(docker ps -qa)
#6.启动容器
docker start 容器id