美文网首页
Docker的基本安装和使用

Docker的基本安装和使用

作者: CallMe兵哥 | 来源:发表于2019-11-05 19:24 被阅读0次
docker设计.png
  1. 虚拟机是运行于操作系统之上的系统,通常通过虚拟机管理程序对主机资源进行访问,会消耗大量的资源。

  2. docker 则在Linux本地运行,与其他容器一起共享主机资源,不会占用其他程序的资源,从而显得更加轻巧。

Docker 的组件

docker架构.png
  1. 镜像images:可以理解为一个完整的操作系统,里面部署了你想要的应用代码。

  2. 容器 containers:依据镜像创建的实例,可以启动、停止、开始、删除,镜像里面的基础代码,容器可以配置个性化代码(例如各种配置文件、日志文件等等)

  3. 仓库 registry:这个跟maven的远程仓库一样,保存了很多镜像。市场上有很多公用的仓库,DockerHub是官方,但是在国内访问很慢,也有阿里、网易等多家互联网公司提供镜像仓库。

    当然,你可以根据需要,自己在本地网络新建一个仓库。

  4. 客户端 dockerclient:理解为你的开发机器,但是你需要安装一个dockerclient,可以是IDEA的docker插件。

  5. 服务器 dockerserver :理解为你需要部署的服务器,需要安装Docker Engine-Community

Docker的在CentOs下安装

Docker支持以下64位的操作系统

  • CentOS 7
  • CentOS 8
  • 更高版本...
  1. 卸载旧版本
$  sudo yum remove docker \
         docker-client \
         docker-client-latest \
         docker-common \
         docker-latest \
         docker-latest-logrotate \
         docker-logrotate \
         docker-engine 
  1. 安装初始化依赖
$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  1. 设置安装仓库
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装Docker Engine-Community
$ sudo yum install docker-ce docker-ce-cli containerd.io
  1. 启动Docker,并设置为开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
  1. 验证安装是否成功
$ sudo docker run hello-world

启动以后,如果安装成功会输出:

Hello from Docker!
This message shows that your installation appears to be working correctly.
 .......

Docker 安装、启动、更新常用命令

sudo systemctl daemon-reload     #刷新/etc/docker/daemon.json文件
sudo systemctl enable docker-tcp.socket  #刷新/etc/systemd/system/docker-tcp.socket文件
sudo systemctl stop docker       #停止docker服务
sudo systemctl start docker-tcp.socket  #启用docker-tcp服务,这个用于非本机客户端访问docker
sudo systemctl start docker     #启动docker服务
sudo systemctl restart docker   #重启docker服务

Docker 下载镜像、设置镜像加速

  1. 设置镜像加速

    a) 设置了镜像加速器以后,如果一个镜像拉取不到,则会切换到加速器的地址。

    b) 对于Ubuntu 16.04+、Debian 8+、CentOS 7系统,先建立一个 /etc/docker/daemon.json ,在文件中写入如下内容。

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
}

​ c) 之后重新启动服务。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
  1. 镜像的下载

    使用pull命令下载镜像,如果没有版本号,则默认最新版本。

docker pull nginx

Docker 镜像操作的基本命令

查询镜像

docker search nginx

获取一个镜像

docker pull nginx

列出本机镜像列表

docker images 

删除本机镜像

docker rmi hello-world

更新本机镜像,这个需要先启动一个容器,在容器里面更新

docker run -t -i nginx /bin/bash
#进入容器以后执行更新命令
docker commit -m="has update" -a="runoob" e218edb10161 runoob/nginx:v2

创建自己的镜像

这个多种方式,可以依据另外一个现有的镜像克隆一个镜像。也可以使用 docker build 依据 Dockerfile 文件 创建对象,创建的文件内容如下

FROM    centos:6.7
MAINTAINER      Fisher "fisher@sudops.com"

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
EXPOSE  22
EXPOSE  80
CMD     /usr/sbin/sshd -D

通过docker build命令创建

docker build -t runoob/centos:6.7

最后通过 docker images命令查询名字为runoob/centos:6.7的镜像

docker images

Docker 容器的使用

列举常用的操作

  1. 启动
docker run -it ubuntu /bin/bash

参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • -d:后台运行
  • ubuntu: ubuntu 镜像。
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

要退出终端,直接输入 exit:

  1. 查看所有停止容器或运行容器
docker ps -a #查看所有
docker ps    #查看启动
  1. 停止一个容器
docker stop <容器 ID>   #<容器 ID>,例如1e560fca3906,不需要<>
  1. 重启一个容器
docker restart <容器 ID>
  1. 容器也是一个操作系统,所以,可以进入容器

    docker attach

    docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

docker attach <容器 ID>  #退出会导致容器停止
docker exec -it <容器 ID> /bin/bash
  1. 导入和导出容器
docker export <容器 ID> > ubuntu.tar

以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:

cat docker/ubuntu.tar | docker import - test/ubuntu:v1

指定某个URL导入

docker import http://example.com/exampleimage.tgz example/imagerepo
  1. 删除容器
docker rm -f <容器 ID>   

-f:强制删除

相关文章

网友评论

      本文标题:Docker的基本安装和使用

      本文链接:https://www.haomeiwen.com/subject/pjpebctx.html