docker安装卸载
使用 Docker 仓库进行安装
设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
$ yum install -y yum-utils device-mapper-persistent-data lvm2
使用以下命令来设置稳定的仓库。
使用官方源地址(比较慢)
yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
阿里云
yum-config-manager --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清华大学源
yum-config-manager --add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
sudo yum install docker-ce docker-ce-cli containerd.io
安装特定版本
#查看版本,按版本号(从高到低)对结果进行排序
yum list docker-ce --showduplicates | sort -r
#安装特定版本,示例:docker-ce-18.09.1
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
启动docker
systemctl start docker
通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community
docker run hello-world
卸载 docker
删除安装包:
yum remove docker-ce
删除镜像、容器、配置文件等内容:
rm -rf /var/lib/docker
卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
docker使用
镜像管理
常用命令
#从dockerhub查找镜像
docker search centos
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
#下载镜像
docker pull centos
#查看本地镜像
docker images
#把镜像做成离线压缩包
docker save -o centos.tar.gz centos
#解压离线镜像包
docker load -i centos.tar.gz
#删除镜像
docker rmi -f centos:latest
通过镜像启动容器
docker run -it centos:latest /bin/bash
- run运行容器
- -it 使用交互模式运行容器并且分配一个伪输入终端
- centos:latest 指定启动的容器的镜像
- /bin/bash 是启动容器后运行的指令
如果提示不是root用户可以使用这条命令进入容器
docker exec -it --user root <container id> /bin/bash
更新镜像并保存
#查看运行中的容器
docker ps -a
#将一个容器转化成镜像保存起来
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
-各个参数说明:
- -m: 提交的描述信息
- -a: 指定镜像作者
- e218edb10161:容器 ID
- runoob/ubuntu:v2: 指定要创建的目标镜像名
利用Dockerfile创建镜像
Dockerfile是一种配置文件, 可以看作批处理脚本, 但是是以一种配置化的形式进行编写
新建一个Dockerfile
文件( 无后缀 ), 写入下面内容
# 选择一个镜像作为基础
FROM centos:latest
# 维护者的信息
MAINTAINER zjeff
# 启动镜像后进行的操作
RUN yum update -y
RUN yum install -y git
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
# 拷贝本地文件到镜像中
COPY ./* /usr/share/gitdir/
# 前面是容器中的路径, 后面是本地路径
使用Dockerfile新建一个镜像
docker build -t runoob/centos:6.7 .
-
-t :指定要创建的目标镜像名、tag . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
如果你忘了加-y 可能会提示你输入yes 提示会停止构建镜像的过程
还有的时候不能使用-y
如果是安装脚本的场合 比如我们用sh Anaconda3-4.4.0-Linux-x86_64.sh来安装anaconda的时候,”烦人”的anaconda会问四个问题,我的回答顺序分别是Enter,yes,Enter,yes。于是你可以这样写:
RUN sh -c '/bin/echo -e "\nyes\nyes" | sh Anaconda3-4.4.0-Linux-x86_64.sh'
镜像的文件备份和加载
docker save -o centos.tar zjeff/centos:git
# 保存镜像, -o也可以是--output
docker load -i centos.tar
# 加载镜像, -i也可以是--input
容器管理
run可以运行一个镜像, 创建一个容器 ,之前已经用过了,现在补充一下后台运行和日志的用法
后台运行容器
docker run -d xxxx
后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:
docker attach container_name/container_id
删除容器
docker rm container_name/container_id
启动, 停止 , 重启容器
docker start|stop|restart container_name/container_id
使用DockerHub保存你的镜像
- 注册一个DockerHub账号 , hub.docker.com/
- 登录
docker login
# Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
# Username: zjeff
# Password:
# Login Succeeded
复制代码
- 推送
推送的时候, 要把用户名和登录名一致
docker push zjeff/centos:git # 成功推送
docker push xxx/centos:git # 失败
# The push refers to a repository [docker.io/xxx/centos]
# unauthorized: authentication required
复制代码
- pull 镜像
docker pull zjeff/centos:git
拓展阅读
深入原理面试官:你简历中写用过 Docker,能说说容器和镜像的区别吗? - 知乎 (zhihu.com)
减小你的镜像体积 两个奇技淫巧,将 Docker 镜像体积减小 99% - 知乎 (zhihu.com)
docker 常用命令操作总结 Docker学习笔记:Docker 基础用法和命令帮助 - docker ppt - docker中文社区
标签:容器,入门,centos,ce,yum,镜像,docker From: https://www.cnblogs.com/ASSNT/p/16906821.html