centos7安装docker
安装之前,一定查看是否安装docker,如果有,卸载老版本
我是虚拟机装的Centos7,linux 3.10 内核,docker官方说至少3.8以上,建议3.10以上(ubuntu下要linux内核3.8以上, RHEL/Centos 的内核修补过, centos6.5的版本就可以)
-
查看内核
uname -a
-
卸载旧版本的 Docker(如果有):
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
-
(可选)把yum包更新到最新
(生产环境慎重!yum update会对软件包和内核升级,此处只是为了排除系统环境的影响)
yum update
-
安装需要的软件包
yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
或者只安装yum-util
sudo yum install -y yum-utils
-
设置yum源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
查看仓库中docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
-
安装 Docker Engine-Community:
yum install docker-ce-18.03.1.ce docker-ce-cli-18.09.8-3.el7
可以不指定版本(推荐此方式):
sudo yum install docker-ce docker-ce-cli containerd.io
说明:yum install docker-ce-版本号,我选的是18.03.1
-
启动Docker
systemctl start docker
-
加入开机启动
systemctl enable docker
-
docker version查看版本
- 简单的docker命令
docker ps 查看当前正在运行的容器
docker ps -a 查看所有容器的状态
docker start/stop id/name 启动/停止某个容器
docker attach id 进入某个容器(使用exit退出后容器也跟着停止运行)
docker exec -ti id 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)
docker images 查看本地镜像
docker rm id/name 删除某个容器
docker rmi id/name 删除某个镜像docker run --name test -ti ubuntu /bin/bash 复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash
docker build -t soar/centos:7.1 . 通过当前目录下的Dockerfile创建一个名为soar/centos:7.1的镜像
docker run -d -p 2222:22 --name test soar/centos:7.1 以镜像soar/centos:7.1创建名为test的容器,并以后台模式运行,并做端口映射到宿主机2222端口,P参数重启容器宿主机端口会发生改变
-
查看Docker 是否已安装并列出docker相关的包
rpm -qa | grep docker
如果只有ce,还需要安装ce-cli
sudo yum install docker-ce-18.09.8-3.el7 docker-ce-cli-18.09.8-3.el7
- 安装docker-compose
下载Docker Compose二进制文件。你可以从Docker GitHub发布页面找到最新版本的Docker Compose的链接。执行以下命令下载Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
修改二进制文件的执行权限
sudo chmod +x /usr/local/bin/docker-compose
验证安装是否成功
docker-compose --version
- 查看docker服务的状态
sudo systemctl status docker
-
运行hello-world镜像验证
sudo docker run hello-world
创建文件daemon.json文件:
touch /etc/docker/daemon.json
配置文件/etc/docker/daemon.json,添加阿里云镜像:
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com",
"https://b9pmyelo.mirror.aliyuncs.com",
"https://docker.anyhub.us.kg",
"https://dockerhub.jobcher.com",
"https://dockerhub.icu"
]
}
重启docker服务
systemctl restart docker
sudo systemctl status docker
清理未使用的镜像、容器、网络等资源
docker system prune -a
再次运行hello-world
docker run hello-world
docker简单命令
docker停止容器
docker stop 容器
停止所有容器
docker stop $(docker ps -q)
docker删除容器
删除单个容器
docker rm <container_id_or_name>
强制删除正在运行的容器:
docker rm -f <container_id_or_name>
删除所有已停止的容器
docker container prune
或者
docker rm $(docker ps -a -q)
docker查看镜像
docker images
docker删除镜像
docker rmi -f [IMAGE]
或
docker rmi <image_id>
Docker会自动将镜像文件保存在/var/lib/docker/image/
目录下
docker 保存镜像到本地
要将Docker镜像保存到本地文件,可以使用docker save
命令。以下是一个示例,展示如何将名为myimage:mytag
的镜像保存到一个名为myimage.tar
的本地文件中。
docker save -o myimage.tar myimage:mytag
加载保存的镜像
使用docker load
命令:
docker load -i myimage.tar