CentOS Docker安装 && docker 基础指令
1 # 直接从官网下载docker的安装命令包(docker已经很贴心将安装shell脚本帮我们准备好了) 2 curl -fsSL get.docker.com -o get-docker.sh 3 4 # 然后以超级管理员去运行安装,这里安装需要花些时间,我是腾讯云CentOS 8.2 64bit系统,双核4GB,差不多20分钟 5 sudo sh get-docker.sh 6 7 # 查看是否安装成功,这个时候你可以按到docker的客户端已经安装好了 8 docker version
1 # 将当前用户添加到docker用户组去,这样就不用sudo运行 2 sudo gpasswd -a pc1 docker 3 # 更新用户组 4 newgrp docker 5 # 修改docker镜像容器默认存储位置 6 docker info 7 # 修改配置文件 8 vim /lib/systemd/system/docker.service 9 # 修改ExecStart的值 10 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph=/mnt/Docker
9 10 # 用超级管理员启动docker服务 11 sudo systemctl start docker 12 13 # 再次查看docker版本,如果Doker Engine服务已经有了,那就代表你已经安装成功了 14 docker version
15
16 # 创建容器,并启动容器 17 # 如果你机子上没有nginx镜像,那么它会从Docker Hub上拉取一个nginx镜像下来,然后到本地执行shell脚本来创建nginx镜像,并创建nginx镜像的容器 18 # 容器的名字是创建容器的时候自动生成的 19 docker container run nginx 20 21 # 查看镜像 22 docker container ls 23 24 # 查看所有镜像 25 docker container ls -a 26 27 # 停止容器,每个容器在启动后都会生成一个唯一的id,通过该id我们可以停止它,id太长你可以简写id为前两位 28 docker container stop [容器id] 29 30 # 启动已停止的容器 31 docker container start [容器id] 32 33 # -d后台运行容器,-p是端口映射,--name 为容器取一个名字 34 docker container run --name nginx_t1 -p 80:80 -d nigix 35 36 # 恢复到前台运行 37 docker container attach [容器id] 38 39 # 后台运行的时候,通过该命令来查看日志 40 docker container logs [容器id] 41 42 # 这里是实时日志 43 docker container logs -f [容器id] 44 45 # 交互模式运行容器,这样我们就可以通过shell命令进入容器中操作 46 docker container run -it ubuntu sh 47 48 # 进入后台正在运行的某个容器,进行shell命令交互 49 docker exec -it [容器id] sh 或者以root身份 docker exec -it --user root [容器id] /bin/bash 50 51 # 删除容器 52 docker container rm [容器id] 53 54 # q强制删除正在运行的容器 55 docker container rm [容器id] -f 56 57 # 批量处理,同时删除id以12,23,34开头的容器 58 docker container rm [12,23,34] 59 60 # 查询所有容器的id 61 docker container ps -aq 62 63 # 停止所有容器 64 docker container stop $(docker container ps -aq) 65 66 # 删除所有容器 67 docker container rm $(docker container ps -aq) 68 69 获取镜像的三个方法 70 一.pull from registry 71 https://registry.hub.docker.com/ 72 https://quay.io/ 73 二.Dockerfile online 自己自作,需要自己编写Dockerfile 74 三.自写 75 76 # 如何拉取镜像 77 # wordpress:一个博客镜像 78 docker image pull wordpress 79 docker image pull quay.io/presslabs/wordpress-operator [这里会报错,quay的问题] 80 81 # 查看已安装的镜像 82 docker image ls 83 84 # 查看镜像详细信息 85 docker iamge inspect [镜像id] 86 87 # 删除镜像 88 docker image rm [镜像id] 89 90 # 导出镜像,busybox:镜像名字,latest最新的版本,你也可以写具体版本号,-o指定输出的文件名 91 docker iamge save busybox:latest -o mybusybox.image 92 93 # 导入镜像 94 docker image load -i .\mybusybox.image 95 96 # 构建镜像,jspang构建的技术名,1.0设定镜像的版本,'.'在当前目录构建 如何编写Dockerfile 97 docker image build -t jspang:1.0 . 98 99 # 修改镜像名 100 docker image tag oldname newname 101 102 # 上传镜像 103 docker image push jspangcom/jspang
1 # CP命令: 2 # 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下 3 docker cp /www/runoob 96f7f14e99ab:/www/ 4 # 将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www 5 docker cp /www/runoob 96f7f14e99ab:/www 6 # 将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中 7 docker cp 96f7f14e99ab:/www /tmp/ 8 9 # 查看容器运行状态 10 docker stats nginx1 11 # 查看容器进程信息 12 docker top nginx1
最后总结:docker的存在是为了将繁琐的安装升级简单化,因为我们安装一套复杂软件的时候,同时需要安装软件所依赖的种种其他软件,才能让软件正常运行,才算安装搭建好了软件环境。因为依赖软件(mysql、postgresql、python环境、java环境、node环境……)存在版本的多样性,以及不同操作系统的安装方法也不一样,而我们的软件可能并不能支持所有版本,因此在安装部署软件环境的时候需要花费大量的时间(根据软件的复杂度可能一两个小时页可能一两天-这还是多人配合才能完成)。
Docker就是为了解决这个问题存在的,Docker将安装的操作系统和所有依赖软件安装顺序以及安装的版本都打包成一个docker镜像,安装的时候直接通过镜像安装。
Docker制作流程:一、将安装步骤通过Dockerfile描述出来。
二、将Dockerfile制作成镜像。
三、创建镜像实例(也就是安装)。一个镜像可以安装无数次。一个镜像也可以创建多个实例。
Docker也是一个平台,我们可以将我们做好的Docker发布到Docker平台上去,让其他人使用。Docker会有一些安全的官方认证的镜像,任何人都可以从上面下载。