参考:汤小洋老师的教学视频

docker学习笔记(一)【docker 介绍、卸载、安装、配置加速】

docker学习笔记(三)镜像

docker学习笔记(四)使用docker搭建环境

docker学习笔记(五)如何创建自己的阿里云镜像仓库(这是2021版的阿里云教程)

目录标题

    • [docker学习笔记(一)【docker 介绍、卸载、安装、配置加速】](https://blog.csdn.net/a123123sdf/article/details/117186486?spm=1001.2014.3001.5501)
    • docker学习笔记(三)镜像
    • docker学习笔记(四)使用docker搭建环境
    • docker学习笔记(五)如何创建自己的阿里云镜像仓库(这是2021版的阿里云教程)
  • docker命令大全
  • 1、docker命令帮助
  • 2、docker镜像常用命令
    • 2.1、搜索镜像
    • 2.2、 拉取镜像
    • 2.3、 查看本地的镜像
    • 2.4、 查看某个镜像的元信息
    • 2.5、 删除指定的本地镜像
  • 3、docker容器常用命令
    • 3.1、 docker run --name 容器名 -i -t 镜像id/镜像名:tag
    • 3.2、 docker ps 查看正在运行的容器
    • 3.3、 docker ps -a 查看运行过的所有容器
    • 3.4、 docker start 容器的id/名字 运行指定的容器
    • 3.5、 docker stop 容器的id/名字 停止指定的容器
    • 3.6、 docker rm 容器的id/名字 删除指定的容器
    • 3.7、 docker rm -f $(docker ps -aq) 强制删除所有容器
    • 3.8、以tomcat为例
    • 3.9、操作容器(进入容器执行一些操作)
    • 3.10、docker cp 主机的路径:容器id :容器里面的路径 (将宿主机里面的文件复制到容器里面)
  • 4、数据卷(目录挂载)
    • 4.1、使用数据卷
    • 4.2、验证挂载是否成功
    • 4.3、 通过docker inspect 容器id可以查到容器的元数据(查看容器的挂载目录和端口映射)

docker命令大全

菜鸟教程

1、docker命令帮助

  1. 输入docker可以查看docker的大致使用
  2. docker info 可以查看安装的docker 比较详细的信息 相比docker version
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker info
Containers: 3  #当前容器的数量Running: 0  #正在运行的Paused: 0  # 暂停运行的Stopped: 3 #停止运行的
Images: 1  #镜像数
Server Version: 1.13.1     #当前docker 的版本
Storage Driver: overlay2Backing Filesystem: extfsSupports d_type: trueNative Overlay Diff: false
Logging Driver: journald
Cgroup Driver: systemd
Plugins: Volume: localNetwork: bridge host macvlan null overlay
Swarm: inactive
Runtimes: docker-runc runc
Default Runtime: docker-runc
Init Binary: /usr/libexec/docker/docker-init-current
containerd version:  (expected: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1)
runc version: 66aedde759f33c190954815fb765eedc1d782dd9 (expected: 9df8b306d01f59d3a8029be411de015b7304dd8f)
init version: fec3683b971d9c3ef73f284f176672c44b448662 (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:seccompWARNING: You're not using the default seccomp profileProfile: /etc/docker/seccomp.json
Kernel Version: 3.10.0-514.26.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 1
Total Memory: 1.796 GiB
Name: iz2zedg4ylq9iqtwm11wecz
ID: VBAX:RWTG:5L7G:BIDA:HKE5:TW3W:G5AQ:CAUS:TGKB:HYCS:BR3Q:TDLC
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Experimental: false
Insecure Registries:127.0.0.0/8
Registry Mirrors:https://bsycr8v3.mirror.aliyuncs.com
Live Restore Enabled: false
Registries: docker.io (secure)
  1. 使用docker 命令名 --hlep 查看某个docker 命令的使用
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker run --helpUsage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Run a command in a new container

2、docker镜像常用命令

2.1、搜索镜像

docker search mysql

OFFICIAL 为【OK】则是官方上传的镜像

使用docker search 命令查看到的信息并不详细,在真正开发使用的时候我们会去docker hub官方仓库查看每个镜像的具体版本信息

当我们在官方仓库查看了镜像的版本信息后,可以通过tag来决定拉取哪个镜像

这里还有一些镜像的简单使用教程

2.2、 拉取镜像

docker pull mysql:5.7  #使用docker pull 去拉取一个镜像 :后面指定拉取的版本。
Trying to pull repository docker.io/library/mysql ...
5.7: Pulling from docker.io/library/mysql
69692152171a: Pull complete    #  这里有很多pull complete是因为 docker 是分层的
1651b0be3df3: Pull complete
951da7386bc8: Pull complete
0f86c95aa242: Pull complete
37ba2d8bd4fe: Pull complete
6d278bb05e94: Pull complete
497efbd93a3e: Pull complete
a023ae82eef5: Pull complete
e76c35f20ee7: Pull complete
e887524d2ef9: Pull complete
ccb65627e1c3: Pull complete
Digest: sha256:a682e3c78fc5bd941e9db080b4796c75f69a28a8cad65677c23f7a9f18ba21fa
Status: Downloaded newer image for docker.io/mysql:5.7

2.3、 查看本地的镜像

  1. 在这里有两个镜像,一个是mysql,一个是hello-world 因为hello-world 在执行run命令时没有指定拉取的版本,就会默认拉取latest 这个版本
  2. 这里的MySQL 之所以比我们之前下载的mysql大,是因为这个mysql镜像里面不仅仅只有mysql 它还包含了mysql运行说需要的环境。而这些环境一般是公用的环境,当有其他镜像需要这些环境的时候,就会直接从mysql镜像里面拿。
docker images # 使用docker images 查看本地所有的镜像
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
docker.io/mysql         5.7                 2c9028880e58        11 days ago         447 MB
docker.io/hello-world   latest              d1165f221234        2 months ago        13.3 kB

2.4、 查看某个镜像的元信息

docker inspect 2c9028880e58  #   后面的2c9028880e58 是镜像的id 可以通过docker images查看镜像id

2.5、 删除指定的本地镜像

方式一:docker rmi docker.io/hello-world:latest #通过名字加版本tag
方式二:docker rmi d1165f221234 # 通过镜像id

  1. 当使用名字进行删除的时候,必须指定镜像的tag。
  2. 当镜像正在运行的时候我们可以使用docker rmi 镜像id -f进行强制删除
docker rmi docker.io/hello-world:latest -f
Untagged: docker.io/hello-world:latest
Untagged: docker.io/hello-world@sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c
Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726

3、docker容器常用命令

实际上是在Docker容器中运行一个精简版的centos系统

3.1、 docker run --name 容器名 -i -t 镜像id/镜像名:tag

  1. –name 是指定运行的容器的名,如果没有指定一个容器名,系统会自动分配
  2. -i 以交互模式运行,即以交互模式运行容器 常常与 -t一起使用
  3. -t 分配一个伪终端,即命令行,通常与-i 组合起来使用 -it
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker pull centos  # 我们使用pull命令 拉取centos  这个镜像,这个centos是非常小的,是阉割版的
Using default tag: latest
Trying to pull repository docker.io/library/centos ...


成功拉取

下面运行这个centos 镜像

[root@iz2zedg4ylq9iqtwm11wecz ~]# docker run --name mycentos -it 300e315adb2f  #仔细观察可以发现 [root@iz2zedg4ylq9iqtwm11wecz ~] 变成了[root@a46cbb0f35d5 /]
[root@a46cbb0f35d5 /]#   #此时我们已经进入了容器里面的为伪终端[root@a46cbb0f35d5 /]# ls  #查看容器的目录
bin  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
dev  home  lib64  media       opt  root  sbin  sys  usr[root@a46cbb0f35d5 lib]# exit  # 使用exit退出并关闭容器
exit
[root@iz2zedg4ylq9iqtwm11wecz ~]#

3.2、 docker ps 查看正在运行的容器

docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

3.3、 docker ps -a 查看运行过的所有容器

[root@iz2zedg4ylq9iqtwm11wecz ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
a46cbb0f35d5        300e315adb2f        "/bin/bash"         25 minutes ago      Exited (0) 5 minutes ago                       mycentos
020108a4fad2        d1165f221234        "/hello"            12 hours ago        Exited (0) 12 hours ago                        serene_torvalds
91443b60a463        d1165f221234        "/hello"            12 hours ago        Created                                        affectionate_morse
701317f765df        d1165f221234        "/hello"            12 hours ago        Created                                        quirky_hawking

docker ps - q 只显示容器id

3.4、 docker start 容器的id/名字 运行指定的容器

[root@iz2zedg4ylq9iqtwm11wecz ~]# docker start mycentos  #启动mycentos这个容器
mycentos
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
a46cbb0f35d5        300e315adb2f        "/bin/bash"         31 minutes ago      Up 7 seconds                            mycentos
[root@iz2zedg4ylq9iqtwm11wecz ~]#

3.5、 docker stop 容器的id/名字 停止指定的容器

docker stop mycentos
mycentos
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
a46cbb0f35d5        300e315adb2f        "/bin/bash"         34 minutes ago      Exited (0) 8 seconds ago                       mycentos
020108a4fad2        d1165f221234        "/hello"            12 hours ago        Exited (0) 12 hours ago                        serene_torvalds
91443b60a463        d1165f221234        "/hello"            12 hours ago        Created                                        affectionate_morse
701317f765df        d1165f221234        "/hello"            12 hours ago        Created                                        quirky_hawking

3.6、 docker rm 容器的id/名字 删除指定的容器

[root@iz2zedg4ylq9iqtwm11wecz ~]# docker rm 020108a4fad2 # 删除指定的容器
020108a4fad2
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
a46cbb0f35d5        300e315adb2f        "/bin/bash"         39 minutes ago      Exited (0) 4 minutes ago                       mycentos
91443b60a463        d1165f221234        "/hello"            12 hours ago        Created                                        affectionate_morse
701317f765df        d1165f221234        "/hello"            12 hours ago        Created                                        quirky_hawking
[root@iz2zedg4ylq9iqtwm11wecz ~]#

使用docker rm -f 强制删除一个容器,一般用于删除正在运行的容器

3.7、 docker rm -f $(docker ps -aq) 强制删除所有容器

[root@iz2zedg4ylq9iqtwm11wecz ~]# docker ps -a #先查看目前拥有的容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
44a9acc4f0c8        centos              "/bin/bash"         12 seconds ago      Exited (0) 6 seconds ago                        affectionate_cori
9d745c025a4e        centos              "/bin/bash"         29 seconds ago      Exited (0) 18 seconds ago                       infallible_boyd
a46cbb0f35d5        300e315adb2f        "/bin/bash"         2 days ago          Up 8 minutes                                    mycentos
701317f765df        d1165f221234        "/hello"            3 days ago          Created

强制删除所有容器,相当于管道的操作

[root@iz2zedg4ylq9iqtwm11wecz ~]# docker rm -f $(docker ps -aq)
44a9acc4f0c8
9d745c025a4e
a46cbb0f35d5
701317f765df
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

3.8、以tomcat为例

  1. 拉取一个tomcat镜像,使用默认版本
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker pull tomcat
Using default tag: latest
Trying to pull repository docker.io/library/tomcat ...
latest: Pulling from docker.io/library/tomcat
d960726af2be: Pull complete
e8d62473a22d: Pull complete
8962bc0fad55: Pull complete
65d943ee54c1: Pull complete
da20b77f10ac: Pull complete
8669a096f083: Pull complete
e0c0a5e9ce88: Pull complete
f7f46169d747: Pull complete
42d8171e56e6: Pull complete
774078a3f8bb: Pull complete
Digest: sha256:10842dab06b5e52233ad977d4689522d4fbaa9c21e6df387d7a530e02316fb45
Status: Downloaded newer image for docker.io/tomcat:latest
  1. 查看这个镜像
    可以发现这个镜像还是非常的大,但实际上的tomcat是没有这么大的,因为这个镜像里面不仅仅有tomcat、还有tomcat依赖的运行环境,因为镜像是分层的。后面会详解
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    latest              c43a65faae57        12 days ago         667 MB
docker.io/mysql     5.7                 2c9028880e58        2 weeks ago         447 MB
docker.io/centos    latest              300e315adb2f        5 months ago        209 MB
  1. 启动并且访问这个容器
    启动的时候可以看到默认的端口好为8080,tomcat的版本是9.0.
    在浏览器中访问
    通过主机ip地址和端口号8080进行访问,发现访问不了,是因为。我们运行的tomcat容器,不是直接运行在服务器(主机)上面的,他说运行在容器(docker容器是一个精简版的linux系统)里面的,这个占用的端口号是容器里面的端口号,并不是服务器的端口号,因此通过8080是无法访问到这个tomcat的。
    因此我们需要进行端口映射,通过 -p 参数进行端口映射。就是将主机的端口映射到容器里面的端口。

    关闭上次打开的tomcat容器,再次运行tomcat
    docker run --name mytomcat -p 9800:8080 c43a65faae57
    –name mytomcat 给启动的容器起一个名字
    -p 9800:8080 端口映射 前面的是服务器(主机)的端口 后面的是容器里面的端口 **
    (注意:1、选择主机端口的时候要注意端口是否被占用,被占用就会映射失败。2、如果是阿里云服务器,还需要在官网上关闭9800这个端口号的防火墙,同时也要关闭服务器本身对这个端口号的防火墙。)**
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker run --name mytomcat -p 9800:8080 c43a65faae57
...
26-May-2021 11:22:38.648 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
26-May-2021 11:22:38.751 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [2157] milliseconds
26-May-2021 11:22:39.008 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
26-May-2021 11:22:39.009 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.46]
26-May-2021 11:22:39.073 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
26-May-2021 11:22:39.165 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [413] milliseconds
^C26-May-2021 11:23:10.833 INFO [Thread-3] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
26-May-2021 11:23:10.853 INFO [Thread-3] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
26-May-2021 11:23:10.856 INFO [Thread-3] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
26-May-2021 11:23:10.903 INFO [Thread-3] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]

再次访问tomcat,

  1. 前面启动tomcat容器是在前台运行的。
    在控制台这里打印了很多tomcat的启动代码.当这个终端关闭时tomcat也会关闭

  2. 使用参数 -d 进行后台静默启动。(可以使镜像永久在后台运行)

[root@iz2zedg4ylq9iqtwm11wecz ~]# docker run --name mytomcat -p 9800:8080 -d c43a65faae57  #运行之后我们依旧在终端的页面
9e9ab91f0ddbf54cb0108a66212f831f8e547e893b658a4baa9bcebbd5302c76
[root@iz2zedg4ylq9iqtwm11wecz ~]#
#查看容器可以发现 这个容器正在运行
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                    NAMES
9e9ab91f0ddb        c43a65faae57        "catalina.sh run"   About a minute ago   Up About a minute   0.0.0.0:9800->8080/tcp   mytomcat


下面对容器常用命令进行复习

[root@iz2zedg4ylq9iqtwm11wecz ~]# docker stop 9e9ab91f0ddb   #停止容器
9e9ab91f0ddb
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                       PORTS               NAMES
9e9ab91f0ddb        c43a65faae57        "catalina.sh run"   3 minutes ago       Exited (143) 5 seconds ago                       mytomcat
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker start 9e9ab91f0ddb #启动容器
9e9ab91f0ddb
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
9e9ab91f0ddb        c43a65faae57        "catalina.sh run"   4 minutes ago       Up 6 seconds        0.0.0.0:9800->8080/tcp   mytomcat
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker rm -f 9e9ab91f0ddb  #强制删除容器
9e9ab91f0ddb
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

6.使用 docker logs 容器id 查看容器的运行日志

3.9、操作容器(进入容器执行一些操作)

注意:容器就是一个小型的linux系统
docker exec -it 55d9d2bda967 /bin/bash
这个命令就是进入容器,并打开一个容器里面的终端(命令窗口),我们可以在这个命令窗口执行命令
/bin/bash 就是打开一个终端命令窗口

[root@iz2zedg4ylq9iqtwm11wecz ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
55d9d2bda967        c43a65faae57        "catalina.sh run"   30 seconds ago      Up 29 seconds       0.0.0.0:9800->8080/tcp   mytomcat
[root@iz2zedg4ylq9iqtwm11wecz ~]# docker exec -it 55d9d2bda967 /bin/bash
root@55d9d2bda967:/usr/local/tomcat#

注意容器里面的容器是阉割版的有很多命令都是没有的

#在容器里面查看 根目录的目录可以发现,它就是一个linux的目录
root@55d9d2bda967:/# cd /
root@55d9d2bda967:/# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

3.10、docker cp 主机的路径:容器id :容器里面的路径 (将宿主机里面的文件复制到容器里面)

以下命令都要在宿主机中执行
将宿主机里面的文件复制到容器中

[root@iz2zedg4ylq9iqtwm11wecz ROOT]# docker cp index.jsp 55d9d2bda967:/usr/local/tomcat/webapps
[root@iz2zedg4ylq9iqtwm11wecz ROOT]# docker exec -it 55d9d2bda967  /bin/bash                 root@55d9d2bda967:/usr/local/tomcat# ls
BUILDING.txt     NOTICE         RUNNING.txt  lib             temp          work
CONTRIBUTING.md  README.md      bin          logs            webapps
LICENSE          RELEASE-NOTES  conf         native-jni-lib  webapps.dist
root@55d9d2bda967:/usr/local/tomcat# cd webapps
root@55d9d2bda967:/usr/local/tomcat/webapps# ls
index.jsp

反之,将容器里面的文件复制到宿主机中 注意:后面有个点

[root@iz2zedg4ylq9iqtwm11wecz tmp]# docker cp 55d9d2bda967:/usr/local/tomcat/webapps/index.jsp .
[root@iz2zedg4ylq9iqtwm11wecz tmp]# ls
hsperfdata_root  mysql.sock       systemd-private-1834ff36204f4f2d946848661d4da1da-ntpd.service-CTDxLR
hsperfdata_www   mysqlx.sock      tmp.INpwCFw96T
index.jsp        php-cgi-70.sock  tmp.wc6ZL9XBpo
[root@iz2zedg4ylq9iqtwm11wecz tmp]#

4、数据卷(目录挂载)

注意:如果想要挂载整个目录,那么必须确保宿主主机的文件夹里的文件与容器的文件夹里面的文件一样。否则会挂载失败。
比如:需要挂载容器的etc文件夹的所有文件。
宿主主机挂载目录:/my/emqx/conf/etc

[root@iz2zedg4ylq9iqtwm11wecz etc]# pwd
/my/emqx/conf/etc
[root@iz2zedg4ylq9iqtwm11wecz etc]# ls
acl.conf  certs  emqx.conf  lwm2m_xml  plugins  psk.txt  ssl_dist.conf  vm.args
[root@iz2zedg4ylq9iqtwm11wecz etc]#

容器挂载目录:/opt/emqx/etc

/opt/emqx/etc $ pwd
/opt/emqx/etc
/opt/emqx/etc $ ls
acl.conf       emqx.conf      plugins        ssl_dist.conf
certs          lwm2m_xml      psk.txt        vm.args

注意:两个目录的文件必须一样,文件内容可以不一样。因此,如果需要挂载一整个文件夹。那么一般是先运行一个容器,将需要挂载的文件夹通过docker cp命令复制到宿主主机中,然后再进行目录挂载。

4.1、使用数据卷

注意:在挂载目录的时候需要注意容器挂载的目录的读写权限,在不表明的情况下默认具有读写权限。
比如:-v /tmp/tomcat:/usr/local/tomcat/webapps:ro \ 只有读的权限
-v /tmp/tomcat:/usr/local/tomcat/webapps:rw \ 有读写的权限

#其中 '\' 是换行写
[root@iz2zedg4ylq9iqtwm11wecz tomcat]# pwd
/tmp/tomcat
[root@iz2zedg4ylq9iqtwm11wecz tomcat]# docker run \
> -p 9800:8080 \ #端口映射
> -v /tmp/tomcat:/usr/local/tomcat/webapps \    #目录挂载映射路径,-v 宿主主机路径:容器主机路径(假如不知道容器主机路径可以先启动容器使用,然后进入容器进行查看)
> -d c43a65faae57 #镜像id
1a04a362864b220ec466207b4cf14e13a5bbbfbb88bc6a4af3c235dc1394384b
[root@iz2zedg4ylq9iqtwm11wecz tomcat]#

4.2、验证挂载是否成功

[root@iz2zedg4ylq9iqtwm11wecz tomcat]# docker exec -it 1a04a362864b /bin/bash
root@1a04a362864b:/usr/local/tomcat# ls
BUILDING.txt     LICENSE  README.md      RUNNING.txt  conf  logs            temp     webapps.dist
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          lib   native-jni-lib  webapps  work
root@1a04a362864b:/usr/local/tomcat# cd webapps
root@1a04a362864b:/usr/local/tomcat/webapps# touch 123.text
root@1a04a362864b:/usr/local/tomcat/webapps# ls
123.text
root@1a04a362864b:/usr/local/tomcat/webapps# exit
exit
[root@iz2zedg4ylq9iqtwm11wecz tomcat]# ls
123.text
[root@iz2zedg4ylq9iqtwm11wecz tomcat]# touch aaa.text
[root@iz2zedg4ylq9iqtwm11wecz tomcat]# ls
123.text  aaa.text
[root@iz2zedg4ylq9iqtwm11wecz tomcat]# docker exec -it 1a04a362864b /bin/bash
root@1a04a362864b:/usr/local/tomcat# cd webapps
root@1a04a362864b:/usr/local/tomcat/webapps# ls
123.text  aaa.text
root@1a04a362864b:/usr/local/tomcat/webapps# rm 123.text
root@1a04a362864b:/usr/local/tomcat/webapps# ls
aaa.text
root@1a04a362864b:/usr/local/tomcat/webapps# exit
exit
[root@iz2zedg4ylq9iqtwm11wecz tomcat]# ls
aaa.text
[root@iz2zedg4ylq9iqtwm11wecz tomcat]#

**
提示:1、挂载可以是挂载一个文件,也可以挂载一个目录 。 2、在执行docker run -v 的时候可以同时挂载几个目录(可以写多个-v参数)比如:**

[root@iz2zedg4ylq9iqtwm11wecz tomcat]# docker run \
> -p 9800:8080 \ #端口映射
> -v /tmp/tomcat:/usr/local/tomcat/webapps \    #目录挂载映射路径,-v 宿主主机路径:容器主机路径(假如不知道容器主机路径可以先启动容器使用,然后进入容器进行查看)
> -v /tmp/tomcat1:/usr/local/tomcat/webapps1 \
> -v /tmp/tomcat2:/usr/local/tomcat/webapps2 \
> -d c43a65faae57 #镜像id

4.3、 通过docker inspect 容器id可以查到容器的元数据(查看容器的挂载目录和端口映射)


其中RW表示具有读写权限,RO表示具有读权限,可以在挂载目录的时候指定容器对宿主主机的目录具有那些权限

docker学习笔记(二)docker常用命令相关推荐

  1. Docker学习笔记2 -- Docker的基本命令和使用

    目录 Docker学习笔记1 Docker帮助命令 Docker镜像命令 Docker容器命令 Docker commit操作 Docker学习笔记1 Docker学习笔记1 – Docker基本原理 ...

  2. Linux学习笔记:Linux常用命令总结

    文章目录 前言 Linux学习笔记:Linux常用命令总结 1. 目录命令 1.1 Linux目录结构 1.2 cd命令 切换工作目录 1.3 ls命令 显示目录下文件 1.4 mkdir命令 创建目 ...

  3. Docker学习笔记 之 Docker安装配置使用

    简介 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).bare met ...

  4. 【Docker学习笔记 二】Docker安装、运行流程与常用命令

    上一篇Blog详细介绍了Docker为什么会出现,是为了解决什么问题而出现:Docker的基本组成部分.架构.本篇Blog就来详细了解下Docker如何安装.卸载以及常用的操作命令有哪些.因为Dock ...

  5. Docker 学习笔记(Docker 架构 / 镜像 / 容器 / 常用命令 / Dockerfile / 镜像仓库)

    Docker 1. Docker 入门 1.1 Docker 是什么 1.2 Docker 和 虚拟机 1.3 镜像 容器 仓库 1.4 Docker 架构 1.5 Docker 安装 1.6 doc ...

  6. Docker学习笔记(2)--Docker常用命令

    1. 查看docker信息(version.info) # 查看docker版本 $docker version# 显示docker系统的信息 $docker info 2. 对image的操作(se ...

  7. Docker 入门(二)常用命令纯手敲带测试结果

    Docker常用命令 帮助命令 docker version # 显示docker版本信息 docker info # 显示docker系统信息,包括镜像和容器的数量 docker --help # ...

  8. Docker学习笔记(二)--进阶篇

    文章目录 1. Docker复杂安装 1.1 安装Mysql的主从复制 主从搭建步骤 1.2 安装Redis集群 1.2.1 面试题:1~2亿条数据需要缓存,请问应该怎样设计 1.2.2 三主三从集群 ...

  9. Docker学习笔记-概念和常见命令

    Docker架构 Docker包括三个基本概念: 镜像(image):docker镜像就相当于一个root文件系统.比如:官方镜像ubuntu16.04就包含了完整的一套ubuntu16.04最小系统 ...

  10. docker学习笔记(五)docker实战

    目录 一.搭建MySQL高可用集群(pxc+HA-Proxy) 二.Nginx+Spring Boot+MySQL 一.搭建MySQL高可用集群(pxc+HA-Proxy) 参考链接:https:// ...

最新文章

  1. c++ opencv roi
  2. Java Web Start入门基础教程
  3. 避免代码冗余,使用接口和泛型重构Java代码
  4. checkboxlist与数组结合用的技
  5. Vue Bootstrap OSS 实现文件上传
  6. 成功领导者的20个好习惯
  7. SQL Server一些重要视图 1
  8. 宝塔面板本地调试网站提示域名解析错误的问题
  9. 【深度学习】DCGAN实现动漫头像生成详细说明
  10. 安装黑群晖找不到局域网电脑_UNRAID 、黑群晖、 穿越派 私有云部署测试
  11. MySQL学习笔记--常用存储引擎InnoDB与MyISAM总结
  12. shell 脚本与常用的bash命令
  13. 01.Node.JS 命令行窗口
  14. nba全明星java_2018nba全明星阵容
  15. d va爬黑板animate_部编版四年级语文上册第17课爬天都峰微课视频|MP3朗读|同步练习...
  16. Spring,SpringBoot,Springcloud都是干嘛的?
  17. 【Jenkins】插件安装报错“另一个程序正在使用此文件,进程无法访问”完美解决
  18. hadoop的fs shell命令
  19. Ext.grid.EditorGridPanel viewConfig 设置表格 UniDBGrid
  20. 三天完成企业官网ICP备案与公安备案-详细流程

热门文章

  1. (2020)JAVA中级篇(集合类)
  2. 传奇世界私服务器端制作,传奇世界单机版一键端带服务器附带安装教程。(可局域网)...
  3. [windows Tools] windows程序打包工具-Advanced Installer 10.0
  4. Excel基础(01)认识excel
  5. 51单片机的键盘检测原理
  6. 前端项目分析:我是如何做图片优化的(预加载、懒加载和延迟加载)
  7. 科研试剂Norbornene-5-TAMRA,降冰片烯-5-羧基四甲基罗丹明
  8. 10种方法打开EPUB文件
  9. Spring事务通知tx:advice标签
  10. 智慧停车系统是怎么运行的?