Docker笔记

# docker

构成:镜像,容器,仓库

镜像

pull

Docker 运行容器前需要本地存在对应的镜像,
如果镜像不存在,Docker 会尝试先从默认镜像仓库下载(默认使用 Docker Hub 公共注册服务器中的仓库),
用户也可以通过配置,使用自定义的镜像仓库。
不指定默认latest 镜像

//不指定相当于docker pull registry.hub.docker.com/ubuntu:18.04
//即从默认的注册服务器DockerHub Registry中的ubuntu仓库来下载镜像

[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
284055322776: Pull complete 
Digest: sha256:0fedbd5bd9fb72089c7bbca476949e10593cebed9b1fb9edf5b79dbbacddd7d6
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04

//如果从非官方的仓库下载,则需要在仓库名称前指定完整的仓库地址
//从网易蜂巢镜像源来下载
[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker pull hub.c.163.com/public/ubuntu:18.04

run

下载镜像到本地后, 即可随时使用该镜像了, 例如利用该镜像创建一个容器,查看ubuntu的文件

[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker run -it ubuntu:18.04 bash
root@1549d94cc56c:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

//退出
root@1549d94cc56c:/# exit
exit
[root@iZm5e8waxa372qgjp6rzo3Z ~]#

images

列出本地主机已有镜像

guxuchengdeMacBook-Pro:notes guxc$ docker images
REPOSITORY                                                                    TAG             IMAGE ID       CREATED        SIZE
cn-app-hosting                                                                1.0.0-pre       c3deea817318   3 weeks ago    118MB

tag

添加镜像标签

[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker tag ubuntu:18.04 test:latest

inspect

获取该镜像的详细信息

[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker inspect test
[
    {
        "Id": "sha256:5a214d77f5d747e6ed81632310baa6190301feeb875cf6bf9da560108fa09972",
        "RepoTags": [
            "test:latest",
            "ubuntu:18.04"
        ],
        "RepoDigests": [
            "ubuntu@sha256:0fedbd5bd9fb72089c7bbca476949e10593cebed9b1fb9edf5b79dbbacddd7d6"
        ],
        "Parent": "",
        "Comment": "",

history

查看镜像历史,各个层的创建信息

[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker history test
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
5a214d77f5d7        4 months ago        /bin/sh -c #(nop)  CMD ["bash"]                 0B                  
<missing>           4 months ago        /bin/sh -c #(nop) ADD file:0d82cd095966e8ee7…   63.1MB  

search

搜索docker hub官方库中的镜像

[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker search nginx
NAME                                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
bitnami/nginx                                     Bitnami nginx Docker Image                      117                                     [OK]
bitnami/wordpress-nginx                           Bitnami Docker Image for WordPress with NGINX   54                                      [OK]

rmi

删除镜像

//有多个标签,删标签,一个标签,删镜像
[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker rmi test:latest
Untagged: test:latest

//有容器存在,无法删,需先删容器,再删镜像
[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker rmi ubuntu:18.04
Error response from daemon: conflict: unable to remove repository reference "ubuntu:18.04" (must force) - container 1549d94cc56c is using its referenced image 5a214d77f5d7

//docker ps -a 查看容器
[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker ps -a

//先删容器
[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker rm 1549d94cc56c
1549d94cc56c

//再删镜像
[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker rmi 5a214d77f5d7
Untagged: ubuntu:18.04
Untagged: ubuntu@sha256:0fedbd5bd9fb72089c7bbca476949e10593cebed9b1fb9edf5b79dbbacddd7d6
Deleted: sha256:5a214d77f5d747e6ed81632310baa6190301feeb875cf6bf9da560108fa09972
Deleted: sha256:824bf068fd3dc3ad967022f187d85250eb052f61fe158486b2df4e002f6f984e

prune

清理镜像
清理遗留的临时镜像文件以及没有被使用的镜像
-a, -all: 删除所有无用镜像, 不光是临时镜像
-f, -force: 强制删除镜像, 而不进行提示确认

[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker image prune -f
Total reclaimed space: 0B

save

将镜像导出到本地
-o 导出到指定文件

[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker save -o my_ubuntu.tar ubuntu:latest
[root@iZm5e8waxa372qgjp6rzo3Z ~]# ls
my_ubuntu.tar

load

载入镜像
将tar镜像文件导入到本地镜像库
-i 从指定文件读入镜像内容

//如果已存在,不会导入
[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker load -i my_ubuntu.tar
9f54eef41275: Loading layer [==================================================>]  75.16MB/75.16MB
Loaded image: ubuntu:latest 

commit

基于已有的容器创建镜像
-a 作者信息
-m提交消息

[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker run -it ubuntu:latest bash
root@fbe508dc57dd:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@fbe508dc57dd:/# touch test

//基于ubuntu创建镜像newtest:1.1
[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker commit -m "add test" -a "newtest" fbe508dc57dd newtest:1.1
sha256:63075c4768acbce5d5b96d547b843c2160719c4e8530328ab76171ae07910f2d
[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker images
REPOSITORY                                                                                                TAG                                                               IMAGE ID            CREATED             SIZE
newtest                                                                                                   1.1                                                               63075c4768ac        6 seconds ago       72.8MB

//查看newtest
[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker run -it 63075c4768ac bash
root@795d0f2319ba:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  test  tmp  usr  var

push

上传镜像到仓库,默认dockerhub

//先打标签
docker tag test:latest usertest:latest
//push
docker push usertest:latest

容器

create

新建容器,刚新建的容器处于停止状态

[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker create ubuntu:latest
48bf73075a35dc43df899b5eee5f17c5895e717430c9887438d19f035a0e27a9
[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker ps -a
CONTAINER ID        IMAGE                                                                                                     COMMAND                   CREATED             STATUS                     PORTS                    NAMES
48bf73075a35        ubuntu:latest                                                                                             "bash"                    6 seconds ago       Created                                             magical_benz

start

启动容器,启动一个刚创建的容器

[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker start 48bf73075a35
48bf73075a35
[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker ps -a
CONTAINER ID        IMAGE                                                                                                     COMMAND                   CREATED              STATUS                     PORTS                    NAMES
48bf73075a35        ubuntu:latest                                                                                             "bash"                    About a minute ago   Exited (0) 5 seconds ago                            magical_benz

run

新建并启动容器,等价于create+start

-i 让容器标准输入保持打开
-t 让docker分配一个伪终端并绑定到容器的标准输入上
—rm,容器退出时就能够自动清理容器内部的文件系统
Bash 启动一个bash终端,用于用户交互
运行exit 退出容器

[root@iZm5e8waxa372qgjp6rzo3Z ~]# docker run -it ubuntu:latest bash
root@59309e7b7593:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@59309e7b7593:/# exit
exit

//守护态运行,-d参数实现
docker run -d ubuntu /bin/sh 

logs

查看容器输出

docker logs ce55432323

pause

暂停运行中的容器

docker pause test

stop

终止运行中的容器

docker stop test

container prune

清除所有处于停止状态的容器

docker container prune

restart

会将一个运行态的容器先终止,再重新启动

docker restart ce2342dsf

exec

进入容器,如果启动容器时-d后台启动,进入容器通过exec命令

docker exec -it 123vdsa /bin/bash

rm

删除容器
只能删除已处于终止或者退出状态的容器,不能删除正在运行的容器
如果直接删除一个运行中的容器,加-f参数强制删除

docker rm 12312sadfcas

export

导出容器
导出一个已经创建的容器到一个文件,不管是否在运行

docker export -o test.tar cds32

//导出容器abc和容器cds到new.tar
docker export -o new.tar abc
docker export cds > new.tar

import

上一步导出的文件导入变成镜像
import和load命令很像
Load导入镜像存储文件到本地镜像库
Import导入容器快照到本地镜像库
容器快照将丢失所有历史记录和元数据信息,仅保存容器当时的快照状态,所以小,镜像文件保存完整记录,体积更大

docker import new.tar - newubuntu:1.1

ps

查看本地容器
-q 查看容器id

docker ps -a
//看到所有容器的 ID
docker ps -qa

container inspect

查看容器具体信息

docker container inspect test

top

查看容器内进程
类似linux的top命令,打印容器内的进程信息

docker top test

container cp

支持在容器和主机之间复制文件

//将本机的data复制到test容器 /tmp路径
docker container cp data test:/tmp/

container port

查看容器的端口映射情况

docker container port test

container help

//查看docker支持的容器操作命令
docker container help

仓库

存放镜像点地方
和注册服务器(registry)区别:
注册服务器可以有多个仓库,每个仓库下可以用多个镜像
例:仓库地址private-docker.com/ubuntu 中,private-docker.com是注册服务器地址,ubuntu是仓库名

数据卷

容器端口映射和容器互联

Dockerfile

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要下载Docker笔记,首先需要了解Docker是什么以及其使用场景。 Docker是一种开源的容器化平台,可以帮助用户打包、部署和运行应用程序。通过使用容器化技术,用户无需担心运行环境的差异,可以将应用程序和其依赖项打包到一个可移植的容器中,随时在不同的环境中运行。 要下载Docker笔记,可以按照以下几个步骤进行操作: 1. 首先,需要在计算机上安装Docker。可以从Docker官方网站(https://www.docker.com/)上下载适合自己操作系统的Docker安装包,并按照安装指南进行安装。 2. 安装完成后,需要启动Docker服务。根据操作系统的不同,可以在启动菜单或终端中找到Docker应用程序,并点击打开。在Docker控制台中,可以查看、管理容器以及进行其他操作。 3. 接下来,需要搜索并下载Docker笔记的镜像。可以使用Docker Hub(https://hub.docker.com/)这个官方的镜像仓库,搜索关键词以找到合适的笔记镜像。在搜索结果中,会显示镜像的名称、描述、标签等信息,选择一个合适的镜像。 4. 找到想要下载的笔记镜像后,可以使用Docker命令行工具或Docker控制台中的图形界面来下载镜像。通过输入命令`docker pull 镜像名称:标签`,即可下载对应的笔记镜像到本地。 5. 下载完成后,可以使用`docker images`命令在本地查看已下载的镜像列表。根据下载的笔记镜像的名称和标签,可以使用`docker run`命令来创建并启动一个容器,从而运行笔记。 通过以上步骤,就可以成功下载Docker笔记并在本地运行。希望这些信息对您有帮助! ### 回答2: 要下载Docker笔记,首先需要知道从哪里获取这些笔记Docker有一个官方文档网站,其中包含了大量关于Docker的技术文档、教程和示例以及各种使用场景的说明。用户可以访问Docker官方网站,在文档部分进行浏览和搜索,找到所需的笔记。 在Docker官方文档网站上,用户可以按照主题、标签或关键字进行检索,以找到相关的笔记。网站还提供了各种文件格式的下载选项,包括PDF、EPUB和HTML版本,用户可以根据自己的使用习惯选择适合的格式进行下载。 此外,还有一些第三方资源库和网站提供了Docker相关的笔记下载。例如GitHub上有很多开源项目,其中包含了Docker的使用笔记和示例代码。用户可以通过在GitHub上搜索关键字"Docker笔记"或"Docker notes"来找到相关的项目,然后根据项目的说明进行下载。 总之,下载Docker笔记可以通过Docker官方文档网站或第三方资源库进行。用户可以根据自己的需求和偏好选择下载适合自己的格式和来源。 ### 回答3: 要下载 Docker 笔记,首先需要确保已经安装了 Docker 客户端工具。然后按照以下步骤进行下载: 1. 打开终端或命令提示符,输入以下命令来下载 Docker 笔记Docker 镜像: ``` docker pull [镜像名称] ``` 这里的 `[镜像名称]` 是 Docker Hub 上提供的 Docker 镜像名称,可以根据需要搜索并选择合适的镜像。 2. 等待镜像下载完成后,使用以下命令来创建和运行一个 Docker 容器,并将笔记下载到本地: ``` docker run -it --name [容器名称] [镜像名称] [下载命令] ``` 这里的 `[容器名称]` 是用于标识容器的名称,`[下载命令]` 是具体的下载命令,可以根据下载方式的不同进行相应的设置。 3. 等待下载完成后,可以使用以下命令来停止并删除容器: ``` docker stop [容器名称] docker rm [容器名称] ``` 这里的 `[容器名称]` 是之前创建容器时指定的名称。 通过以上步骤,你就可以成功下载 Docker 笔记到本地了。记得根据实际需求选择适合的 Docker 镜像和下载命令,同时也可以通过 Docker Hub 上的文档和社区提供的资源,了解更多有关 Docker 的使用方法和技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值