在linux的ubuntu上安装docker参考如何在 Ubuntu 20.04 上安装和使用 Docker - 知乎 (zhihu.com)
配置:
防火墙、selinux、容器镜像加速器(如果软件镜像下载pull的慢,去阿里云的容器镜像服务配置镜像加速器)、网卡转发(在/etc/sysctl.d/docker.conf下配置然后sysctl -p /etc/sysctl.d/docker.conf)
过程:
在宿主机中下载所需软件镜像、选定目录、在目录下创建DockerFile文件以及容器中所需代码、自定义镜像、基于镜像创建容器
docker命令:
docker search 软件(查询软件)
docker pull 软件:版本(下载软件镜像到docker,默认最新版本)
docker images ( 查看本机docker中存在的镜像)
docker build -t 镜像名:版本号 . -f DockerFile (自定义镜像)
docker run [-d] [-p 端口号:端口号] [--name 容器名] 镜像名:版本号 [--no-cache] [命令参数](创建容器,p为端口转发,d为后台运行)
docker ps [-a] (列出当前运行容器,a为所有)
docker stop 容器名 (终止容器,容器名可以不写全)
docker rm 容器名(清除容器)
技巧:docker stop/rm "docker ps -aq" || 暂停/销毁 所有容器
在DockerFile中的命令:
FROM 指定基础镜像 ||(如ubuntu:20.04、mysql:5.7等)
MAINTAINER 指定镜像维护者 ||(如姓名、邮箱等)
COPY/ADD 文件 目录 || 将宿主机中的文件拷贝到容器中(DockerFile目录下的),ADD自动将压缩包解压
WOEKDIR 当前工作目录 ||(类似于cd)
RUN 命令 || 在容器中执行linux命令
ENV 名称 路径 || 给路径起别名,使用时$路径名称
EXPOSE 端口 || 使用端口
CMD [命令...] || 执行命令(最后一步,只允许一条)
ENTRYPOINT [命令...] || 同CMD,只不过如果在run后面增加命令参数,这个是叠加,cmd是覆盖
ENTRYPOINT [shell脚本路径,shell脚本]
注意:
在docker run中如果不带no cache命令,在DockFile里如果有apt或者git pull时,在第一次下载后会存入缓存中,后续如果git更改代码后是无法更新的,但有缓存下载会很快
在容器中必须有前台进程(在bash体现就是卡住一样,在django显示就是直接运行而不是-d后),如果没有容器立即销毁
特殊的前台进程:在docker run -ti 镜像名:版本 bash/sh 相当于进入容器系统,当前用户的bash充当前台进程
标签:容器,run,部署,命令,镜像,docker,DockerFile From: https://www.cnblogs.com/weakxy-home/p/17452529.html