Docker--容器、仓库、镜像基本操作

二、Docker 容器操作

1、查看

查看已经启动的容器:docker ps

查看全部容器:docker ps -a

检测已经启动的容器的状态:docker stats

查看已经启动的容器的ids:docker ps -q

查看最后一个创建的容器:docker ps -l

2、创建容器

创建容器并进入容器: docker run -i -t ubuntu:15.10 /bin/bash

    • -t: 在新容器内指定一个伪终端或终端。

    • -i: 允许你对容器内的标准输入 (STDIN) 进行交互。

    • ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。

    • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

创建一个指定名称(ubuntu-test)后台运行的容器:docker run -itd --name ubuntu-test ubuntu /bin/bash

    • 加了 -d 参数默认不会进入容器
    • 容器命名:docker run -d -P --name runoob training/webapp python app.py
      • --name 标识来命名容器

3、启动容器

启动容器:docker start (CONTAINER ID),例如 docker start cf2cb52b7593

重启容器:docker restart (CONTAINER ID)

4、进入容器,在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

进入容器,退出容器终端后容器停止:docker attach (CONTAINER ID)

进入容器,退出容器终端后容器不会停止:docker exec -it (CONTAINER ID)或者 (NAMES) /bin/bash

5、停止容器

停止容器:docker stop (CONTAINER ID)

6、查看容器日志

查看容器日志:docker logs (CONTAINER ID)

7、删除容器

删除容器使用rm命令,-f 强制删除,运行中的容器也是可以删除的:docker rm -f (CONTAINER ID)

清理掉所有处于终止状态的容器:docker container prune

8、导出导入容器

导出容器:docker export (CONTAINER ID) > 路径/name.tar

导入容器:cat 路径/name.tar | docker import - test/ubuntu:v1,可以通过docker images查看镜像是否导入成功

三、仓库管理 Docker Hub

docker 仓库是用来存放镜像的地方

  1. 注册:输入用户名,邮箱,密码,人机身份验证
  2. 登录仓库:docker login
  3. 退出仓库:docker logout
  4. 搜索仓库中的镜像:docker search (镜像名称)
  5. 从仓库中拉取镜像:docker pull  (镜像名称)
  6. 推送镜像到仓库中:docker push(镜像名称) 
    1. 例子
      $ docker tag ubuntu:18.04 username/ubuntu:18.04
      $ docker image ls
      
      REPOSITORY      TAG        IMAGE ID            CREATED           ...  
      ubuntu          18.04      275d79972a86        6 days ago        ...  
      username/ubuntu 18.04      275d79972a86        6 days ago        ...  
      $ docker push username/ubuntu:18.04
      $ docker search username/ubuntu
      
      NAME             DESCRIPTION       STARS         OFFICIAL    AUTOMATED
      username/ubuntu

四、Docker 镜像使用

当运行容器时,使用的镜像如果在本地不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载

  1. 列出镜像列表

    1. docker images
      1. REPOSITOPY: 表示镜像的仓库源
      2. TAG: 镜像的标签
      3. IMAGE ID: 镜像ID
      4. CREATED: 镜像创建时间
      5. SIZE: 镜像大小 
    2. 同一个仓库源可以有多个TAG,代表这个仓库源的不同版本,比如ubuntu15.10、13.10等多个版本 
      1. docker run -t -i ubuntu:15.10 /bin/bash
  2. 获取一个新的镜像

    1. docker pull  ubuntu:13.10
  3. 查找镜像

    1. Docker Hub 网址:https://hub.docker.com/
    2. docker search (镜像名称)
  4. 删除镜像

    1. docker rmi  (镜像名称)
  5. 创建镜像

    1. 更新镜像,从已经创建的容器中更新镜像,并且提交这个镜像
      1. 先创建一个容器:docker run -t -i ubuntu:15.10 /bin/bash
      2. 更新镜像:apt-get update
      3. 提交容器副本,创建新的镜像:docker commit -m="has update" -a="runoob" (CONTAINER ID)runoob/ubuntu:v2
        1. -m: 提交的描述信息
        2. -a: 指定镜像作者
        3. runoob/ubuntu:v2: 指定要创建的目标镜像名
    2. 构建镜像
      1. 先创建一个 Dockerfile 文件
        1. 每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
        2. 第一条FROM,指定使用哪个镜像源
        3. RUN 指令告诉docker 在镜像内执行命令,安装了什么
        4. 例:
          runoob@runoob:~$ cat Dockerfile 
          FROM    centos:7
          MAINTAINER      Fisher "[email protected]"
          
          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
      2. 通过 docker build 命令来创建一个镜像 
        1. docker build -t runoob/centos:7 .

  6. 使用镜像创建一个容器

    1. docker run -t -i -d (指定镜像名) /bin/bash
  7. 设置镜像标签(设置一个容易识别的tag)

    1. docker tag (CONTAINER ID)runoob/centos:dev

猜你喜欢

转载自blog.csdn.net/xch622114/article/details/130854817