docker是什么
这里用简单的几句话描述docker做了什么事情。
- docker是一个可以创建、管理容器的东西。可以理解为docker里面存放了许多容器。
- 容器就是一个精简版的linux系统,这个系统只有基本的环境供以使用,里面可以运行程序(可以是mysql,可以是nginx,可以是redis等)。
- 容器的创建是依赖于镜像的,镜像可以看作是一个模板,docker可以根据镜像生成一个容器实例,假如你需要一个容器中放入mysql,那么就去docker的镜像仓库拉取一个mysql镜像(可指定版本),然后docker可以基于这个镜像创建一个mysql容器,这样就能在docker中运行使用一个只含有mysql的系统了。
- 容器的存在使我们可以方便做很多事情,比如项目需要mysql、nginx环境来运行,可以直接创建mysql和nginx容器供项目使用,不需要在服务器上下载、安装、配置这些环境,容器内部已经包含了这些必备的东西。同时容器还可以很方便的移植,比如我们需要切换服务器,这些项目正在使用的容器可以直接打包带走放在另一个服务器上。
docker安装
-
如果机器安装过docker先卸载旧版
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
使用存储库安装
在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
安装
yum-utils
软件包(提供yum-config-manager
实用程序)并设置稳定的存储库。$ sudo yum install -y yum-utils # 这是官方的源(比较慢),也可以选择其它源。 $ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo # 这是阿里的源 $ sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
安装Docker Engine-Community
# 最新版安装 $ sudo yum install docker-ce docker-ce-cli containerd.io
- 安装完成后,运行下面的命令,验证是否安装成功。
$ docker version
# 或者
$ docker info
Hello Word
比如现在需要一个nginx,首先执行
docker pull nginx # 默认最新版,如果需要指定版本,直接 nginx:version
拉取成功之后,可以使用docker images
查看
[root@izbp109k5j3dul0ejalpf5z html]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 4571e56e27f0 2 days ago 132MB
然后启动容器
[root@izbp109k5j3dul0ejalpf5z html]# docker run nginx # 启动nginx容器
启动成功后查看容器dockers ps
docker常用命令
-
查看容器信息
##查看docker容器版本 docker version ##查看docker容器信息 docker info ##查看docker容器帮助 docker --help
-
列举一个镜像操作
##列出本地images docker images ##含中间映像层 docker images -a ##下载Redis官方最新镜像,相当于:docker pull redis:latest docker pull redis ##下载仓库所有Redis镜像 docker pull -a redis ##单个镜像删除,相当于:docker rmi redis:latest docker rmi redis ##强制删除(针对基于镜像有运行的容器进程) docker rmi -f redis ##多个镜像删除,不同镜像间以空格间隔 docker rmi -f redis tomcat nginx ##删除本地全部镜像 docker rmi -f $(docker images -q)
-
容器操作
##新建并启动容器,参数:-i 以交互模式运行容器;-t 为容器重新分配一个伪输入终端;--name 为容器指定一个名称 docker run -i -t --name mycentos ##后台启动容器,参数:-d 已守护方式启动容器 docker run -d mycentos ##启动一个或多个已经被停止的容器 docker start redis ##重启容器 docker restart redis ##进入容器 docker exec -i -t centos /bin/bash ##查看正在运行的容器 docker ps ##查看正在运行的容器的ID docker ps -q ##查看正在运行+历史运行过的容器 docker ps -a ##显示运行容器总文件大小 docker ps -s ##停止一个运行中的容器 docker stop redis ##杀掉一个运行中的容器 docker kill redis ##删除一个已停止的容器 docker rm redis ##删除一个运行中的容器 docker rm -f redis ##删除多个容器 docker rm -f $(docker ps -a -q) docker ps -a -q | xargs docker rm ## -l 移除容器间的网络连接,连接名为 db docker rm -l db ## -v 删除容器,并删除容器挂载的数据卷 docker rm -v redis
网友评论