角度 | LXC | Docker | |
运行方式 | 使用namespace运行多个进程 | 一个docker只能运行一个进程 | |
安装方式 | 自行现场安装 | 直接从hub下载,无须自行定义 | |
docker inspect host_nginx #检查某一个Container 的参数 情况
[root@vhost-xiaoshancun docker]# docker network ls #显示所有的网桥
NETWORK ID NAME DRIVER SCOPE
59ef2c6e4969 bridge bridge local
f8bd30438a48 host host local
68447dbf6019 none null local
docker inspect host_nginx #检查某一个Container 的参数 情况
[root@vhost-xiaoshancun docker]# docker network ls #显示所有的网桥
NETWORK ID NAME DRIVER SCOPE
59ef2c6e4969 bridge bridge local
f8bd30438a48 host host local
68447dbf6019 none null local
yum install bridge-util
[root@vhost-xiaoshancun ~]# brctl show #显示虚拟交换机上端口的连接情况
yum install bridge-util
[root@vhost-xiaoshancun ~]# brctl show #显示虚拟交换机上端口的连接情况
[root@vhost-xiaoshancun ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
0865d189a638 bridge bridge local # 普通的叠加网络效果
f8bd30438a48 host host local # 直接管理宿主机网络,修改会影响宿主机
68447dbf6019 none null local #指定的docker不启用网络功能
[root@vhost-xiaoshancun ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
0865d189a638 bridge bridge local # 普通的叠加网络效果
f8bd30438a48 host host local # 直接管理宿主机网络,修改会影响宿主机
68447dbf6019 none null local #指定的docker不启用网络功能
[root@vhost-xiaoshancun ~]#docker inspect host_nginx #最后会docker container名称 可以显示container的详细配置信息
[root@vhost-xiaoshancun ~]# ip link show #显示虚拟网卡情况
[root@vhost-xiaoshancun ~]# brctl show #显示虚拟交换机上端口的连接情况
[root@vhost-xiaoshancun ~]#docker inspect host_nginx #最后会docker container名称 可以显示container的详细配置信息
[root@vhost-xiaoshancun ~]# ip link show #显示虚拟网卡情况
[root@vhost-xiaoshancun ~]# brctl show #显示虚拟交换机上端口的连接情况
[root@vhost-xiaoshancun ~]# docker run --name t1 --rm --network bridge -it busybox #bridge桥接方式
[root@vhost-xiaoshancun ~]# docker run --name t1 --rm --network host -it busybox # 创建host方式网卡
[root@vhost-xiaoshancun ~]# docker run --name t1 --rm --network none -it busybox #创建none无网卡主机
root@vhost-xiaoshancun ~]# docker run --name host_nginx -p 81:80 --rm -d nginx
[root@vhost-xiaoshancun ~]# docker port host_nginx #绑定指定端口,所有宿主机IP
80/tcp -> 0.0.0.0:81
[root@vhost-xiaoshancun ~]# docker run --name host_nginx -p 192.168.72.129::80 --rm -d nginx # 第三种是指定IP的
[root@vhost-xiaoshancun ~]# docker port host_nginx
80/tcp -> 192.168.72.129:32768
[root@vhost-xiaoshancun ~]# docker run --name host_nginx -P --rm -d nginx #大写的p 自动暴露容器中所有服务
[root@vhost-xiaoshancun ~]# docker run --name t1 --rm --network bridge -it busybox #bridge桥接方式
[root@vhost-xiaoshancun ~]# docker run --name t1 --rm --network host -it busybox # 创建host方式网卡
[root@vhost-xiaoshancun ~]# docker run --name t1 --rm --network none -it busybox #创建none无网卡主机
root@vhost-xiaoshancun ~]# docker run --name host_nginx -p 81:80 --rm -d nginx
[root@vhost-xiaoshancun ~]# docker port host_nginx #绑定指定端口,所有宿主机IP
80/tcp -> 0.0.0.0:81
[root@vhost-xiaoshancun ~]# docker run --name host_nginx -p 192.168.72.129::80 --rm -d nginx # 第三种是指定IP的
[root@vhost-xiaoshancun ~]# docker port host_nginx
80/tcp -> 192.168.72.129:32768
[root@vhost-xiaoshancun ~]# docker run --name host_nginx -P --rm -d nginx #大写的p 自动暴露容器中所有服务
[root@vhost-xiaoshancun ~]# docker run --name host_nginx --rm -p 80 -d nginx #随机端口映射
[root@vhost-xiaoshancun ~]# docker port host_nginx #查看某一个容器的具体映涉信息
80/tcp -> 0.0.0.0:32769
[root@vhost-xiaoshancun ~]# docker run --name host_nginx --rm -p 80 -d nginx #随机端口映射
[root@vhost-xiaoshancun ~]# docker port host_nginx #查看某一个容器的具体映涉信息
80/tcp -> 0.0.0.0:32769
[root@vhost-xiaoshancun ~]# docker run --name host1 --rm -itd nginx
[root@vhost-xiaoshancun ~]# docker run --name host2 --network container:host1 --rm -d nginx
[root@vhost-xiaoshancun ~]# docker run --name host1 --rm -itd nginx
[root@vhost-xiaoshancun ~]# docker run --name host2 --network container:host1 --rm -d nginx
"bip":"10.0.0.1/16" # 后面的IP和网段可以修改
"bip":"10.0.0.1/16" # 后面的IP和网段可以修改
"hosts":["tcp://192.168.1.2:2375","unix///var/run/docker.sock "]
"hosts":["tcp://192.168.1.2:2375","unix///var/run/docker.sock "]
[root@vhost-xiaoshancun ~]# docker network create -d bridge --subnet "172.26.0.0/16" --gateway "172.26.0.1" mybr0
docker run --name host2 -it --network mybr0 busybox
[root@vhost-xiaoshancun ~]# docker network create -d bridge --subnet "172.26.0.0/16" --gateway "172.26.0.1" mybr0
docker run --name host2 -it --network mybr0 busybox
[root@vhost-xiaoshancun ~]# docker run --name node1 --rm -itd -v /data busybox
容器内的/data挂载到了宿主机的 /var/lib/docker/volumes/ca6b361b2398ceb7f11eb2ab131d1f58a52040c18f38f478e0d135e7613b81c2/_data
宿主主内外都可以修改 注意 dockerid目录会在docker删除后会自动删除
[root@vhost-xiaoshancun _data]# docker inspect node1 #查看node1的配置 mount环节 可以看到mount类型为volume
"Mounts": [
{
"Type": "volume",
"Name": "ca6b361b2398ceb7f11eb2ab131d1f58a52040c18f38f478e0d135e7613b81c2",
"Source": "/var/lib/docker/volumes/ca6b361b2398ceb7f11eb2ab131d1f58a52040c18f38f478e0d135e7613b81c2/_data",
"Destination": "/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
[root@vhost-xiaoshancun ~]# docker run --name node1 --rm -itd -v /data busybox
容器内的/data挂载到了宿主机的 /var/lib/docker/volumes/ca6b361b2398ceb7f11eb2ab131d1f58a52040c18f38f478e0d135e7613b81c2/_data
宿主主内外都可以修改 注意 dockerid目录会在docker删除后会自动删除
[root@vhost-xiaoshancun _data]# docker inspect node1 #查看node1的配置 mount环节 可以看到mount类型为volume
"Mounts": [
{
"Type": "volume",
"Name": "ca6b361b2398ceb7f11eb2ab131d1f58a52040c18f38f478e0d135e7613b81c2",
"Source": "/var/lib/docker/volumes/ca6b361b2398ceb7f11eb2ab131d1f58a52040c18f38f478e0d135e7613b81c2/_data",
"Destination": "/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
绑定时指定的宿主机目录不需要事先创建,会在启动container时自动建立
[root@vhost-xiaoshancun ~]# docker run --name node1 --rm -itd -v /dockers/volumen/node1:/data busybox
在宿主机的/dockers/volumen/node 中修改增加的文件会在容器中体现 ,相反一致
[root@vhost-xiaoshancun _data]# docker inspect node1 #查看node1的配置 mount环节 可以看到mount类型为bind
"Mounts": [
{
"Type": "bind",
"Source": "/dockers/volumen/node1",
"Destination": "/data",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
[root@vhost-xiaoshancun node1]# docker inspect -f {{.Mounts}} node1 #只看某一段数据
[{bind /dockers/volumen/node1 /data true rprivate}]
绑定时指定的宿主机目录不需要事先创建,会在启动container时自动建立
[root@vhost-xiaoshancun ~]# docker run --name node1 --rm -itd -v /dockers/volumen/node1:/data busybox
在宿主机的/dockers/volumen/node 中修改增加的文件会在容器中体现 ,相反一致
[root@vhost-xiaoshancun _data]# docker inspect node1 #查看node1的配置 mount环节 可以看到mount类型为bind
"Mounts": [
{
"Type": "bind",
"Source": "/dockers/volumen/node1",
"Destination": "/data",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
[root@vhost-xiaoshancun node1]# docker inspect -f {{.Mounts}} node1 #只看某一段数据
[{bind /dockers/volumen/node1 /data true rprivate}]
[root@vhost-xiaoshancun ~]# docker run --name nginx1 --rm --network container:node1 --volumes-from node1 nginx
[root@vhost-xiaoshancun ~]# docker run --name nginx1 --rm --network container:node1 --volumes-from node1 nginx
docker build -t xiaoshancun/httpd:V0.1-10 . #编译生成新的image文件
docker build -t xiaoshancun/httpd:V0.1-10 . #编译生成新的image文件
docker run --name httpd1 --rm xiaoshancun/httpd:V0.1-7 /bin/httpd -f -h /usr/local/html/ #启动一个带端口的http服务
[root@vhost-xiaoshancun Docker_dockfile]# docker run --name httpd1 --rm -P xiaoshancun/httpd:V0.1-7 /bin/httpd -f -h /usr/local/html
[root@vhost-xiaoshancun Docker_dockfile]# docker port httpd1 #可以看出已经暴露了端口
80/tcp -> 0.0.0.0:32769
docker run --name httpd1 --rm xiaoshancun/httpd:V0.1-7 /bin/httpd -f -h /usr/local/html/ #启动一个带端口的http服务
[root@vhost-xiaoshancun Docker_dockfile]# docker run --name httpd1 --rm -P xiaoshancun/httpd:V0.1-7 /bin/httpd -f -h /usr/local/html
[root@vhost-xiaoshancun Docker_dockfile]# docker port httpd1 #可以看出已经暴露了端口
80/tcp -> 0.0.0.0:32769
# Dockerfile文件示例
FROM busybox:latest
MAINTAINER "likaifeng<likaifeng@126.com>"
ENV DOC_ROOT="/usr/local/html/" NGINX_VERSION="nginx-1.16.1"
COPY index.html ${DOC_ROOT:-/usr/local/html/}
COPY yum.repos.d /etc/yum.repos.d/
ADD http://nginx.org/download/nginx-1.16.1.tar.gz /usr/local/src/
WORKDIR /usr/local/src/
#ADD nginx-1.16.1.tar.gz ./
RUN cd /usr/local/src/ && tar -xzvf nginx-1.16.1.tar.gz
VOLUME /data/mysql/
EXPOSE 80/tcp
# Dockerfile文件示例
FROM busybox:latest
MAINTAINER "likaifeng<likaifeng@126.com>"
ENV DOC_ROOT="/usr/local/html/" \
NGINX_VERSION="nginx-1.16.1"
COPY index.html ${DOC_ROOT:-/usr/local/html/}
COPY yum.repos.d /etc/yum.repos.d/
ADD http://nginx.org/download/nginx-1.16.1.tar.gz /usr/local/src/
WORKDIR /usr/local/src/
#ADD nginx-1.16.1.tar.gz ./
RUN cd /usr/local/src/ && \
tar -xzvf nginx-1.16.1.tar.gz
VOLUME /data/mysql/
EXPOSE 80/tcp
#COMMAND #运行在当前shell之下的一个子进程
#COMMAND & #放到当前shell之下的一个后台子进程 ,shell中不能这样写
#nohub command & #由当前shell生成一个子进程,但不把依赖关系放给init使用 shell关闭后command进程不会终止
#COMMAND #运行在当前shell之下的一个子进程
#COMMAND & #放到当前shell之下的一个后台子进程 ,shell中不能这样写
#nohub command & #由当前shell生成一个子进程,但不把依赖关系放给init使用 shell关闭后command进程不会终止
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
[root@vhost-xiaoshancun ~]# docker run --name stress --rm -m 512MB -it lorel/docker-stress-ng stree --vm 3
限制docker使用512MB内存,使用测试程序进行性能测试,启动vm * 2 单个vm为 256MB 已超过设置,但查看设置时并为超过使用限制
[root@vhost-xiaoshancun ~]# docker stats stress
ONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
6a527d8cc34b stress 252.00% 512MiB / 512MiB 100.00% 586B / 0B 1.59GB / 2.15GB 7
[root@vhost-xiaoshancun ~]# docker run --name stress --rm -m 512MB -it lorel/docker-stress-ng stree --vm 3
限制docker使用512MB内存,使用测试程序进行性能测试,启动vm * 2 单个vm为 256MB 已超过设置,但查看设置时并为超过使用限制
[root@vhost-xiaoshancun ~]# docker stats stress
ONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
6a527d8cc34b stress 252.00% 512MiB / 512MiB 100.00% 586B / 0B 1.59GB / 2.15GB 7
[root@vhost-xiaoshancun ~]# docker run --name stress --rm --cpus 2 -it lorel/docker-stress-ng stree --cpu 3
[root@vhost-xiaoshancun ~]# docker run --name stress --rm --cpus 2 -it lorel/docker-stress-ng stree --cpu 3
[root@vhost-xiaoshancun Docker_dockfile]# docker image inspect nginx:latest
[root@vhost-xiaoshancun Docker_dockfile]# docker image inspect nginx:latest
原文:https://www.cnblogs.com/xiaoshancun/p/12352981.html