yum install -y docker

nsenter belongs to util-linux

docker run --name mydocker

docker inspect -f "{{ .State.Pid }}" mydocker

nsenter -t 14301 -m -u -i -n -p

[root@node1 ~]# ./docker.sh mydocker
root@ad347571682b:/# pwd
/
root@ad347571682b:/# exit
logout
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad347571682b docker.io/nginx "/bin/bash" 25 minutes ago Up 15 minutes 80/tcp, 443/tcp mydocker
[root@node1 ~]# cat docker.sh
#!/bin/bash

Use nsenter to access docker

docker_in(){
NAME_ID=$1
PID=$(docker inspect -f "{{ .State.Pid }}" $NAME_ID)
nsenter -t $PID -m -u -i -n -p
}

docker_in $1

[root@node1 ~]# docker exec mydocker ps
PID TTY TIME CMD
165 ? 00:00:00 ps

[root@node1 ~]# docker exec mydocker ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 20236 1908 ? Ss+ 06:54 0:00 /bin/bash
root 173 0.0 0.0 17492 1132 ? Rs 07:12 0:00 ps aux
[root@node1 ~]# docker exec -it mydocker /bin/bash
root@ad347571682b:/# exit
exit
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad347571682b docker.io/nginx "/bin/bash" 28 minutes ago Up 18 minutes 80/tcp, 443/tcp mydocker
[root@node1 ~]#

docker exec and docker.sh 都能进入容器并且exit不会关闭容器

rm Remove one or more containers
rmi Remove one or more images

[root@node1 ~]# docker run --rm centos date

网络随机映射,-P随机映射,-p指定映射,多个-p可以多端口映射

docker run -d -p 192.168.3.3:81:80 --name mynginx nginx

[root@node1 ~]# docker port mynginx
80/tcp -> 192.168.3.3:81

docker ps 也能看到多个端口

[root@node1 /]# docker run -d --name nginx-volume-test1 -v /data nginx

docker run -d --name nginx-volume-test2 -v /data/docker:/data nginx

共享容器
[root@node1 /data/docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e4589cafb94 nginx "nginx -g 'daemon off" 12 minutes ago Up 12 minutes 80/tcp, 443/tcp nginx-volume-test2
6369516a1912 nginx "nginx -g 'daemon off" 15 minutes ago Up 15 minutes 80/tcp, 443/tcp nginx-volume-test1
[root@node1 /data/docker]# docker run -it --name valume-test3 --volumes-from nginx-volume-test2 centos /bin/bash

[root@node1 ~]# docker run -it --name nfsc --rm --volumes-from nfs centos /bin/bash

docker run --name mynginx -it centos
进容器,rpm -ivh epel
yum install -y nginx
/etc/nginx/nginx.conf
daemon off

[root@node1 ~]# docker commit -m "mynginx" 71d04e9e2b55 wis/nginx:v1
sha256:0e0458ff3f0d754dcbe3edb1f94e0565d728228103860c71511acd84b367d467
[root@node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wis/nginx v1 0e0458ff3f0d 5 seconds ago 349.8 MB

[root@node1 ~]# docker run -d -p81:80 --name nginxv1 wis/nginx:v1 nginx

[root@node1 /opt/dockerfile/nginx]# cat Dockerfile
# This Dockerfile

Base image

FROM centos

Maintainer

MAINTAINER Wis.Wang xxx@qq.com

Commands

RUN rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
RUN yum install -y nginx && yum clean all
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
ADD index.html /usr/share/nginx/html/index.html
EXPOSE 80
CMD ["nginx"]

[root@node1 /opt/dockerfile/nginx]# pwd
/opt/dockerfile/nginx
[root@node1 /opt/dockerfile/nginx]# cat index.html
DengGOD

[root@node1 /opt/dockerfile/nginx]# docker build -t mynginx:v2 .

docker run --rm --name mynginxv3 -p 82:80 mynginx:v2

centos-ssh

app

requirements.txt

python-demo.ini

[root@node1 ~/docker]# tree .
.
|-- app
| |-- shop-api
| | |-- Dockerfile
| | |-- app-supervisor.ini
| | |-- app.py
| | |-- requirements.txt
| | -- supervisord.conf | -- xxx-api
|-- runtime
| |-- java
| |-- php
| |-- python
| -- python-ssh | -- Dockerfile
-- system |-- Dockerfile |-- a -- epel.repo

https://github.com/vmware/admiral/blob/master/auth/src/main/java/com/vmware/admiral/auth/AuthInitialBootService.java