Docker基础学习笔记三
四、容器的基本操作
Docker run 是日常常用的最频繁用的命令之一,同样也是较为复杂的命令之一?
命令格式:
docker [OPTIONS] COMMAND [ARG...]
options:选项
-i:表示启动一个交互的容器,并持续打开标准输入
-t:表示使用终端关联到容器的标准输入输出上
-d:表示将容器防止后台运行:
--rm:退出后即删除容器
--name:表示定义容器唯一名称
IMAGE:表示要运行的镜像
COMMAND:表示启动容器是要运行的命令
运行容器:
docker run -it alpine:latest /bin/sh#交互式运行一个容器
docker run --rm alpine:latest /bin/echo hello#非交互式启动一个容器
docker run -d --name alpine01 alpine:latest /bin/sleep 300#非交互式启动一个容器300秒
查看本地的所有容器进程:
Docker ps –a
其他常用命令:
查看宿主机进程命令:
ps aux|grep sleep|grep –v grep
Docker exec –it 容器id /bin/sh#进入到容器
Docker stop 容器id#停止容器
Docker start 容器id#启动容器
Docker restart 容器id#重启容器
Docker rm 容器id#-f强制删除容器
批量删除容器脚本:
for i in `docker ps -a |grep -i exit |awk '{print $1}'`;do docker rm -f $i;done
批量删除镜像脚本:慎用
for i in `docker images|grep -v IMAGE|grep -i " "|awk '{print $3}'`;do docker rmi -f $i;done
将容器固化为一个镜像:
Docker commit -p alpine01 lxtone123/alpine:v3.10.1_with_1.txt
导出镜像命令:
Docker save image id > myalpine lxtone123/alpine:v3.10.1_with_1.txt.tar导出
导入镜像命令
Docker load < myalpine lxtone123/alpine:v3.10.1_with_1.txt.tar导入
导入后给镜像添加标签:
Docker tag imageID …..
查看容器的日志:
Docker logs 容器id #可以加参数-f
查看容器的命令帮助:
Docker –help
docker容器的高级操作如下:
映射端口命令:
把容器内的端口映射到宿主机的端口上
docker run -p 容器外端口:容器内端口
把容器内的目录挂载到宿主机的数据卷:
docker run -v 容器外目录:容器内目录
传递环境变量:
docker run -e 环境变量key=环境变量value
容器内安装软件(工具)
yum / apt-get /apt等
下载nginx镜像
docker pull nginx:1.12.2
端口映射:
docker run --rm --name mynginx -d -p81:80 lxtone123/nginx:v1.12.2映射端口
挂载数据卷:
~]# 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 lxtone123/nginx:v1.12.2
浏览器:http://10.41.1.220:82,百度首页显示 在浏览器上
docker inspect e7861e866ca5获取容器/镜像的元数据
传递环境变量:
docker run --rm -e E_OPTS=abcdefg alpine:3.10.1 printenv
docker run --rm -e E_OPTS=abcdefg -e C_OPTS=123456 alpine:3.10.1 printenv
容器内安装软件
docker exec -it nginx_with_baidu /bin/bash
apt-get update
apt-get install curl -y
固化:
docker commit -p e7861e866ca5 lxtone123/nginx:curl