83.docker 笔记(day83)

docker run -name -h hostname #-h指定主机名

进入容器:docker exec|docekr attach|nsenter

[root@localhost ~]# docker run --name mynginx -it centos

进入正在进行的容器方法:

#! /bin/bash

# Use nsenter to access docker

docker_in() {

   Name_Id=$1

   PID=$(docker inspect -f "{{ .State.Pid }}" $Name_Id)

   nsenter --target $PID --mount --uts --ipc --net --pid

}

docker_in $1

端口映射必须物理机本地端口没有启动,不然会被占用,映射不成功。

镜像存储位置:

[root@localhost sha256]# pwd

/var/lib/docker/image/overlay2/imagedb/content/sha256

[root@localhost sha256]# ll

总用量 12

-rw-------. 1 root root 6022 7月  14 17:57 3c5a051232223f9ccf4a604d611696e98392648c9e567d3ecd2af881c9f93101

-rw-------. 1 root root 2205 7月  14 17:05 49f7960eb7e4cb46f1a02c1f8174c6fac07ebf1eb6d8deffbcb5c695f1c9edd5

[root@localhost sha256]#

容器生成新的镜像:

HOST网络模式:如果启动容器的时候使用 host 模式,那么这个容器将不会获得一个独立的 Network Namespace,而是和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡,配置 自己的 IP 等,而是使用宿主机的 IP 和端口

[root@localhost ~]# docker volume create -d local db_volume

[root@localhost ~]# docker run -it --name volume --volume /var/lib/docker/volumes/db_volume:/root/db centos /bin/bash

#容器的/root/db目录下

[root@ea512c460c7d /]# cd /root/

[root@ea512c460c7d ~]# cd db/

[root@ea512c460c7d db]# ll

total 0

drwxr-xr-x. 2 root root 6 Jul 14 15:13 _data

[root@ea512c460c7d db]# touch aa

[root@ea512c460c7d db]# ll

total 0

drwxr-xr-x. 2 root root 6 Jul 14 15:13 _data

-rw-r--r--. 1 root root 0 Jul 14 15:13 aa

[root@ea512c460c7d db]#

Docker 容器间数据共享:

如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器也是一个容器,但是它的目的是专门用来提供数据卷供其他容器挂载。

首先,创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata

$ docker run -it -v /dbdata --name dbdata ubuntu

root@3ed94f279b6f:/#

查看/dbdata目录:

root@3ed94f279b6f:/# ls

bin  boot  dbdata  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run sbin  srv  sys  tmp  usr  var

然后,可以在其他容器中使用--volumes-from来挂载dbdata容器中的数据卷.

例如创建db1db2两个容器,并从dbdata容器挂载数据卷:

$ docker run -it --volumes-fromdbdata --name db1 ubuntu

$ docker run -it --volumes-from dbdata --name db2 ubuntu

此时,容器db1db2都挂载同一个数据卷到相同的/dbdata目录。三个容器任何一方在该目录下的写入,其他容器都可以看到。

 

docker inspect显示容器或镜像相关信息

 

 

猜你喜欢

转载自www.cnblogs.com/liuqiqi123/p/9313673.html
83