这节记一下docker镜像和容器的一些常用指令:
docker运行流程:
1、docker配置阿里云镜像加速
直接去阿里云->控制台->容器镜像服务->镜像工具->镜像加速器去对照不同的操作系统复制不同的指令,比如ubuntu(第一步建文件可能不用):
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["分给你的加速地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
然后去ubuntu里docker info一下。要是出来 Registry Mirrors: 分给你的加速地址 那么就设置成功了
2、docker run hello-world
设完加速的话,直接运行上述命令就会先去搜索拉取然后启动hello-world,输出其中内容。
3、常用辅助命令
docker version -------------------------- 查看docker的信息
docker info -------------------------- 查看更详细的信息
docker --help -------------------------- 帮助命令
4、Images镜像命令
docker images -------------------------- 列出本地所有镜像
docker images -a 列出所有镜像(包含中间映像层)
docker images -q 只显示镜像id
docker search [options] 镜像名 去dockerhub上查询当前镜像
-s 指定值 列出收藏数不少于指定值的镜像(这条试不出来啊。。)
--no-trunc 显示完整的镜像信息
docker pull 镜像名[:TAG|@DIGEST] 下载镜像(@DIGEST是官网另一个参数,用这个也行)
docker rmi 镜像名 删除镜像
-f 强制删除
5、Contrainer 容器命令
docker run 镜像名 -------------------------- 镜像名新建并启动容器
--name 别名为容器起一个名字
-d 启动守护式容器(在后台启动容器)
-p 映射端口号:原始端口号 指定端口号启动
例:docker run -d --name myTomcat -p 8888:8080 tomcat
docker ps 列出所有正在运行的容器
-a 正在运行的和历史运行过的容器
-q 静默模式,只显示容器编号
docker start 容器名字或者容器id 开启容器
docker restart 容器名或者容器id 重启容器
docker stop 容器名或者容器id 正常停止容器运行
docker kill 容器名或者容器id 立即停止容器运行
docker rm -f 容器id和容器名 删除容器
docker rm -f $(docker ps -aq) 删除所有容器
docker top 容器id或者容器名 查看容器内的进程
docker inspect 容器id 查看容器内部细节
docker logs [OPTIONS] 容器id或容器名 查看容器日志
-t 加入时间戳
-f 跟随最新的日志打印
--tail 数字 显示最后多少条
docker exec [options] 容器id 容器内命令 进入容器执行命令
-i 以交互模式运行容器,通常与-t一起使用
-t 分配一个伪终端 shell窗口 bash
例:docker exec -it 022 bash
docker cp 文件|目录 容器id:容器路径 将宿主机复制到容器内部
docker cp 容器id:容器内资源路径 宿主机目录路径 将容器内资源拷贝到主机上
(cp指令用处不大,因为有共享目录命令)
docker save 镜像名 -o 名称.tar 打包镜像
docker load -i 名称.tar 载入镜像
docker commit -m "描述信息" -a "作者信息"(容器id或者名称)打包的镜像名称:标签 ---容器打包成心得镜像
docker run -v 宿主机的路径|任意别名:/容器内的路径 镜像名 数据卷(volum)实现与宿主机共享目录
注意:
1.如果是宿主机路径必须是绝对路径,宿主机目录会覆盖容器内目录内容
2.如果是别名则会在docker运行容器时自动在宿主机中创建一个目录,并将容器目录文件复制到宿主机中
看共享目录指令的注意1、2,注意2针对于数据库等的数据持久化,而且放容器里也不安全,必须要去宿主机里再备一下。可以参照如下截图:
注意1的指令使用方式:
注意2的指令使用方式:
第一步指令没截取,aa为别名:docker run -d -p 8888:80 --name ng1 -v aa:/home nginx
以上绝大部分指令都敲过了,少数个别几个没敲,以后随用随看吧,反正不天天敲也是记了忘忘了记,记着就当工具书备忘吧。