centos docker安装使用

参考资料: https://qizhanming.com/blog/2019/01/25/how-to-install-docker-ce-on-centos-7

安装准备

为了方便添加软件源,支持 devicemapper 存储类型,安装如下软件包

$ sudo yum update
$ sudo yum install -y yum-utils  device-mapper-persistent-data  lvm2

添加 yum 软件源

添加 Docker 稳定版本的 yum 软件源

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装 Docker

更新一下 yum 软件源的缓存,并安装 Docker。

$ sudo yum update
$ sudo yum install docker-ce

如果弹出 GPG key 的接收提示,请确认是否为 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35 ,如果是,可以接受并继续安装。

至此,Docker 已经安装完成了,Docker 服务是没有启动的,操作系统里的 docker 组被创建,但是没有用户在这个组里。

注意

默认的 docker 组是没有用户的(也就是说需要使用 sudo 才能使用 docker 命令)。
您可以将用户添加到 docker 组中(此用户就可以直接使用 docker 命令了)。

加入 docker 用户组命令

$ sudo usermod -aG docker USER_NAME

用户更新组信息后,重新登录系统即可生效。

安装指定版本

如果想安装指定版本的 Docker,可以查看一下版本并安装。

$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
可以指定版本安装,版本号可以忽略 : 和 el7,如 docker-ce-18.09.1

扫描二维码关注公众号,回复: 8357616 查看本文章
$ sudo yum install docker-ce-<VERSION STRING>

至此,指定版本的 Docker 也安装完成,同样,操作系统内 docker 服务没有启动,只创建了 docker 组,而且组里没有用户。

启动 Docker

如果想添加到开机启动

$ sudo systemctl enable docker

启动 docker 服务

$ sudo systemctl start docker

验证安装

验证 Docker CE 安装是否正确,可以运行 hello-world 镜像

$ sudo docker run hello-world

更新和卸载 Docker

使用 yum 管理,更新和卸载都很方便。

更新 Docker CE

$ sudo yum update docker-ce

卸载 Docker CE

$ sudo yum remove docker-ce

删除本地文件
注意,docker 的本地文件,包括镜像(images), 容器(containers), 存储卷(volumes)等,都需要手工删除。默认目录存储在 /var/lib/docker。

$ sudo rm -rf /var/lib/docker

常用docker命令

docker pull centos 下载映像到本地
docker images 查看映像列表
docker run -i -t centos /bin/bash以交互式启动容器
docker run centos echo 'Hello World'

概要信息,docker info
容器查看,即进程查看,docker ps -a
最近容器查看, docker ps -l

(2)启动容器,docker run -d -p 8080:80 nginx,把容器内的nginx的80端口,映射到当前服务器的8080端口,当前服务器的ip是192.168.1.120,浏览器输入http://192.168.1.120:8080/,就可以看到nginx已启动,
(3)再启动多一个容器,docker run -d -p 8081:80 nginx,浏览器输入http://192.168.1.120:8081/,就可以看到另外一个nginx已启动
也可以通过curl 127.0.0.1:8080 来测试是否打开相应端口
(4)到这里就能体现出Docker部署应用和传统部署应用的区别了,传统部署的话,需要人工拷贝多一份nginx,再配置端口,而Docker部署的话,在已制作好的镜像基础上,一条命令就可以部署一个新的应用

(5) docker inspect a219737ce905 通过命令找到容器端口,可以宿主机直接访问容器:http://172.17.0.2/:80

(1)docker ps -a 可以显示容器id
(2)docker stop 8dc6a2b6f903 停止容器
(3)docker rm 8dc6a2b6f903 删除容器
(4)docker ps 显示当前正在运行的容器

docker commit 235923e34a nginx/centos 将自己构建好的235923e34a容器提交到本地当作下次可以再次使用的映像
docker run --name=nexus -i -t centos /bin/bash
docker inspect nexus
docker start -i nexus 重新启动已经停止的容器

docker run --name=nexus -i -t centos /bin/bash CTRL + P CTRL + Q 退出交互式,以后台服务运行
docker attach nexus 可把后台运行服务提升到交互式运行
docker run --name=nexus -d centos /bin/sh -c "while true; do echo 'hello world'; sleep 1; done"
docker logs -t -f --tail 10 nexus 显示nexus容器打印的最新10条日志,指定10为0时,显示所有日志
docker top nexus 查看nexus进程运行情况
docker exec -i -t nexus /bin/bash 在已经启动的nexus容器中加入新的进程bash,CTRL + P CTRL + Q 退出交互式,以后台服务运行,利用docker top nexus命令可以查看进程
docker stop nexus 发送一个停止信号,优雅停止容器
docker kill nexus 直接停止容器
docker network ls 查看容器创建的网络

docker attach 容器ID 和 docker exec -it 容器ID 都可以将容器提升到前台。但是attach方法,当在容器中exit时,容器会退出,即使是启动时候指定是后台启动;而exec方法,在窗口中exit时,仅仅是退出当前操作终端,而不会退出进程。

猜你喜欢

转载自www.cnblogs.com/billxxx/p/12117128.html