以镜像为基础创建容器,容器也可制作为镜像
加速
- 官方镜像加速 阿里云镜像加速器
- 代理加速
sudo vim /etc/systemd/system/multi-user.target.wants/docker.service # 在[service]下添加 Environment=HTTP_PROXY=http://你的代理 Environment=HTTPS_PROXY=http://你的代理 Environment=NO_PROXY=localhost,127.0.0.1
docker操作
- 基本操作
gpasswd -a 用户名 docker # 添加用户到组 groupadd docker # 报错没有docker用户时,要创建docker用户 newgrp docker # 更新docker用户组 systemctl start docker # 启动docker服务 systemctl stop docker # 停止docker服务 systemctl restart docker # 重启docker服务 systemctl status docker # 查看docker服务状态 systemctl enable docker # 开机自启docker
容器
- 查看容器
docker ps # 查看正在运行的容器 docker ps –a # 查看所有容器 - 创建并启动容器
docker run 参数 初始化命令参数内容:
-i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭
-p:映射端口,-p 服务器端口:容器端口 -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
–name:为创建的容器命名
初始化命令,一般为/bin/bash,可省略(alpine不能省略,为/bin/sh) - 容器操作
docker exec 参数 # 进入容器 docker stop 容器名称 # 停止容器 docker start 容器名称 # 启动容器 docker rm 容器名称 # 删除容器 docker inspect 容器名称 # 查看容器信息 docker cp 本地文件路径 容器id或全称:容器路径 # 复制本地文件到容器 docker volume prune # 删除所有无用数据卷 - 容器转为镜像
docker commit 容器id 新镜像名 docker save -o 压缩文件名称 新镜像名 docker load –i 压缩文件名称 - 容器间通讯
默认桥接网络中的容器只能通过虚拟IP地址访问其他容器
自定义桥接网络提供DNS解析,可以通过容器的名字或是网络别名访问其他容器docker network create 虚拟网桥名 # 自定义桥接网络 docker run -it --name 容器名 --network mybridge --network-alias 网络别名 镜像名 # (--network-alias 网络别名)可省略
镜像
- 查看本地镜像
docker images docker images –q # 查看所有镜像 - 删除本地镜像
docker rmi 镜像id docker rmi `docker images -q` # 删除所有本地镜像修改了原镜像,不会导致在此基础上创建的镜像被修改。因为不允许修改历史镜像,只允许修改容器,而容器只可以在最上面的容器层进行写和变更
数据卷
作用:宿主机与容器、容器与容器之间进行数据同步
- 配置数据卷
宿主与容器两个目录的数据同步docker run ... –v 宿主机目录(文件):容器内目录(文件) 镜像名 初始化命令 - 配置数据卷容器
先创建c3,然后通过c3使c1、c2能够同步数据docker run –it --name=c3 –v /目录 镜像名 docker run –it --name=c1 --volumes-from c3 镜像名 初始化命令 docker run –it --name=c2 --volumes-from c3 镜像名 初始化命令
Dockerfile
文档信息
- 本文作者:Weikang Yu
- 本文链接:https://AccelYu.github.io/2020/03/24/docker/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)