1 Docker指令
- docker info 查看docker信息
- docker run 创建一个docker容器
- docker ps 查看正在运行的docker容器
- docker ps -a 查看正在运行和停止的docker容器
- docker run 通过镜像创建并启动一个容器
- docker run -p 127.0.0.1:80:80 nginx 将本机127.0.0.1:80映射到容器的80端口
- docker start 启动容器
- docker exec -it webserver bash 以交互终端方式进入容器
- docker diff webserver 查看容器的改动
- docker attach 重新附着到容器的回话上
- docker logs 获取容器的日志
- docker top 查看容器内的进程
- docker stop 停止某个容器
- docker rm 删除某个容器
- docker rm `docker ps -a -q` 删除所有的容器
- docker images 列出镜像
- docker pull ubuntu:12.04 拉取镜像(REPOSITORY:TAG)
- docker search 查找所有Docker Hub上公共的可用镜像
- docker rmi 删除镜像
- docker image prune 清楚虚悬镜像
- docker export 7691a814370e > ubuntu.tar 导出镜像
- cat ubuntu.tar | docker import - test/ubuntu:v1.0 导入镜像
- docker inspect CONTAINE_ID | grep IPAddress 查询容器的IP地址
- docker save spring-boot-docker -o spring-boot-docker.tar 保存镜像
- docker load -i spring-boot-docker.tar 加载镜像
- docker export ID >xxx.tar 保存容器
- docker import xxx.tar containr:v1 加载容器
2 dockerfile debain和pip替换国内镜像源
2.1 debain使用国内镜像源
dockerfile中添加
COPY sources.list /etc/apt/
dockerfile目录中创建sources.list,并添加
deb http://mirrors.ustc.edu.cn/debian/ stretch main non-free contrib
deb http://mirrors.ustc.edu.cn/debian/ stretch-updates main non-free contrib
deb http://mirrors.ustc.edu.cn/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ stretch main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ stretch-backports main non-free contrib
deb http://mirrors.ustc.edu.cn/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian-security/ stretch/updates main non-free contrib
2.2 pip添加国内镜像源
dockerfile中添加
COPY pip.conf /etc/pip.conf
dockerfile目录中创建pip.conf,并添加
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
2.3 npm添加国内镜像源
dockerfile中添加
RUN npm config set registry https://registry.npm.taobao.org
RUN npm install
3 dockerfile指令
FROM
Docker基础镜像的来源,尽可能使用当前官方仓库作为你构建镜像的基础
RUN
RUN 指令最常见的用法是安装包用的 apt-get,apt-get update 和 apt-get install 被放在一个 RUN 指令中执行,这样能够保证每次安装的是最新的包。如果 apt-get install 在单独的 RUN 中执行,则会使用 apt-get update 创建的镜像层,而这一层可能是很久以前缓存的。
RUN apt-get update && apt-get install -y \
package-bar \
package-baz \
package-foo
CMD
CMD 指令用于执行目标镜像中包含的软件
CMD ["executable", "param1", "param2"...]
EXPOSE
EXPOSE 指令用于指定容器将要监听的端口
EXPOSE 80
ENV
可以使用 ENV 来为容器中安装的程序更新 PATH 环境变量
ENV PATH /usr/local/nginx/bin:$PATH
ADD 和 COPY
虽然 ADD 和 COPY 功能类似,但一般优先使用 COPY 。因为它比 ADD 更透
明。 COPY 只支持简单将本地文件拷贝到容器中,而 ADD 有一些并不明显的功
能(比如本地 tar 提取和远程 URL 支持)。因此, ADD 的最佳用例是将本地 tar
文件自动提取到镜像中,例如
ADD rootfs.tar.xz
COPY requirements.txt /tmp/
ENTRYPOINT
ENTRYPOINT 的最佳用处是设置镜像的主命令
WORKDIR
WORKDIR指令用于指定容器的一个目录, 容器启动时执行的命令会在该目录下执行
WORKDIR /mydir
CMD ["more" ,"test.txt"]
4 docker compose分配资源
redis服务被限制为使用不超过50M的内存和0.50(不超过单个内核的50%)可用处理时间(CPU),并且具有保留20M的内存和0.25CPU时间(始终可用)。
version: "3.7"
services:
redis:
image: redis:alpine
deploy:
resources:
# 设置容器的资源限制
limits:
cpus: '0.50'
memory: 50M
#设置为容器预留的系统资源(随时可用)
reservations:
cpus: '0.25'
memory: 20M
网友评论