1、docker使用nginx样例:
实体机上创建目录
mkdir -p /root/nignx/html
mkdir -p /root/nignx/conf
mkdir -p /root/nignx/conf.d
mkdir -p /root/nignx/logs
vi /root/nginx/conf/nginx.conf
user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
server {
listen 80;
server_name somename alias another.alias;
location / {
root /usr/share/nginx/html/test; #容器内的html路径
index index.html index.htm;
}
}
}
docker pull nginx
docker run --name nginx -d -p 80:80 --net host -v /root/nginx/html:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /root/nginx/logs:/var/log/nginx nginx
手动进入容器
docker exec -it 容器id /bin/bash
进入容器方法的脚本
#!/bin/bash
docker_in() {
container_id=$1
pid=$(docker inspect --format {{.State.Pid}} $container_id)
nsenter --target $pid --mount --uts --ipc --net --pid
}
docker_in $1
chmod +x docker_in.sh
./docker_in.sh 容器ID
2、docker基础命令
docker重命名
docker tag mysql:last mysql:v5.3.6
docker删除
docker rmi mysql:last
docker rmi mysql:v5.3.6
docker rmi 23232332fa
docker 导入导出镜像
docker save -o mytomcat.tar mytomcat 将镜像导出到本地
docker load -i mytomcat.tar 经本地的镜像文件导入到docker
docker inspect 镜像id 可以查看该镜像的详细信息
docker容器查看:docker ps -a
docker容器暂停 docker pause 容器ID
docker取消容器暂停 docker unpause 容器ID
docker重启容器 docker restart 容器ID
docker容器关闭 docker stop 容器ID
docker 删除容器 docker rm -f 容器ID
批量删除多个容器 docker rm -f $(docker ps -a -q)
3、docker基于容器创建镜像
方式一:
docker commit -m '改动信息' -a '信息作战' 容器id 镜像:tag
docker commit -m 'map nginx' -a 'wnginx' 232323faa0 wnginx:v1.0
方式二:
docker export 232323faa0 > nginx.tar
cat nginx.tar | docker import - wnignx
docker save -o mytomcat.tar mytomcat 将镜像导出到本地
docker load -i mytomcat.tar 经本地的镜像文件导入到docker
import与load的区别,import可以重新指定镜像名称,load则不行
export与save的区别:export导出的镜像小于save的大小, export再导入会丢失镜像的所有历史
4、查看docker的容器的日志
docker logs 容器id
5、查看容器的信息
docker inspect 容器id
查看容器的网络信息
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
容器重命名
docker rename 容器ID 容器名称
6、docker数据卷容器及备份
创建一个数据卷容器
docker create -v /data --name v1-test1 nginx
创建两个容器,同时挂载数据卷容器
docker run --volumes-from 1f70a86b32c5 -tid --name vc-test1 nginx /bin/bash
docker run --volumes-from 1f70a86b32c5 -tid --name vc-test2 nginx /bin/bash
确认卷容器共享
docker exec -it 3f6b15f9ce18 /bin/bash
mkdir -p /data/hello
docker exec -it e37954d9ba47 /bin/bash
cd /data/hello
docker数据备份
mkdir /backup
docker run --rm --volumes-from e37954d9ba47 -v /home/admin/backup:/backup/ nginx tar zcPf /backup/data.tar.gz /data
ls /backup
zcat /backup/data/tar.gz