docker容器基本操作

# 全部有记录的容器进程
~]# docker ps -a
# 存活的容器进程
~]# docker ps
# 启动容器(运行容器)
~]# docker run [options] image[command]
# 过滤出全部已经退出的容器并删掉
~]# for i in `docker ps -a|grep -i exit|awk '{print $1}'`;do docker rm -f $i;done
# 查看日志,-f:跟踪日志输出,即是夯住,可以按ctrl+c
~]# docker log -f <容器id>

Ctrl+c: 强制中断程序的执行

Ctrl+z: 将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态

docker容器高级操作

  • 映射端口:docker run -p 容器外端口:容器内端口
  • 挂载数据卷:docker run -v 容器外目录:容器内目录
  • 传递环境变量:docker run -e 环境变量key:环境变量value
  • 查看内容:docker inspect <容器id>
  • 容器内安装软件(工具):yum/apt-get/apt等
# 映射端口
~]# docker pull nginx:1.12.2
~]# docker images
~]# docker tag 4037a5562b03 909336740/nginx:v1.12.2
~]# docker push 909336740/nginx:v1.12.2
~]# docker images
~]# docker run --rm --name mynginx -d -p81:80 909336740/nginx:v1.12.2
# 查看是否起来了
~]# docker ps -a 
~]# netstat -luntp|grep 81
~]# curl 127.0.0.1:81
~]# docker 

docker run :

  • --rm :用完即删
  • --name :指定名字
  • -d :放到后台,非交互式的
  • -p81:80 :映射端口,宿主机跑81端口,容器(nginx)跑80端口

docker push :推送到我们的远程仓库(公网)

netstat -luntp :用于显示 tcp,udp 的端口和进程等相关情况

|grep :过滤管道

# 挂载数据卷
~]# mkdir html
~]# cd html/
html]# wget www.baidu.com -O index.html
~]# docker run -d --rm --name nginx_with_baidu -d -p82:80 -v/root/html:/usr/share/nginx/html 909336740/nginx:v1.12.2
~]# docker exec -ti nginx_with_baidu /bin/bash
:/# cd /usr/share/nginx/htm/
:/htm# ls
# out: index.html
:/# curl
# out:bash: curl:command not found
:/# tee /etc/apt/sources.list << EOF
deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
EOF
:/# apt-get update && apt-get install curl -y
:/# curl -k https://www.baidu.com
:/# exit
~]# docker ps -a
# 把这个容器push到远程从库,后面会用到
~]# docker commit -p 60c24fa9c6ff 909336740/nginx:curl
~]# docker push 909336740/nginx:curl

-v :挂载数据卷,/root/html为宿主机的数据卷,/usr/share...为容器的数据卷