安装Docker | 服务相关
wget -qO- https:
# 以非root用户可以直接运行docker
sudo usermod -aG docker 主机用户名
# 启动docker
sudo service docker start
# 登陆本地机器上的docker公用镜像库
docker login
镜像加速
{
}
容器相关
# 启动容器
docker start Names
# 正在运行的容器需要重启
dicker restart 容器id / Names
# -t:在新容器内指定一个伪终端或终端
# -i:允许你对容器内的标准输入 (STDIN) 进行交互
# -d:让容器在后台运行。
# -P:将容器内部使用的网络端口映射到我们使用的主机上。
docker run 参数 (--name 命名) 容器 命令
# 平稳关闭容器
docker stop 容器id / Nacmes
# 强制关闭指定的容器
docker kill 容器id / Nacmes
# 删除容器(必须是停止状态)
docker rm Names
# 删除所有容器
docker rm $(docker ps -a -q)
# 停止所有容器
docker stop $(docker ps -a -q)
查看正在运行的Dokcer
docker ps
端口
# docker ps
# 0.0.0.0:32769->5000/tcp
# Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上
# ip:32769可以访问
# 绑定指定端口或者网络地址
# -P :是容器内部端口随机映射到主机的高端口。
# -p : 是容器内部端口绑定到指定的主机端口。
# 默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上 /udp
docker run -d -p 5000:5000 镜像 *.py
docker run -d -p 网络地址:端口:5000 镜像 *.py
# 查看指定容器的某个确定端口映射到宿主机的端口号
docker port 容器id / Names
查看容器标准输出
docker logs -f 容器id
查看进程
docker top Names
查看Dokcer所有命令选项
docker
# 查询指定命令深层参数
docker stats
查看Dokcer底层信息
docker inspect Names
镜像相关
# 列出存在镜像
docker images
# 获取一个新镜像
docker pull docker pull 镜像:版本
# 查找镜像
docker search 镜像名字
# 创建镜像
# 1.从已经创建的容器中更新镜像,并且提交这个镜像
# 2.使用 Dockerfile 指令来创建一个新的镜像
# 更新镜像
# 先创建一个容器
docker run -t -i 镜像 命令
# 在运行的容器内使用apt-get update命令进行更新
# exit()退出当前环境
docker commit -m="提交信息" -a="指定作者" 容器id 新镜像名字
# 构建镜像
# 在自己的系统里创建一个Dockerfile文件,包含以下命令
FROM 镜像源
MAINTAINER Fisher "fisher@sudops.com"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
# -t :指定要创建的目标镜像名
# . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
# 终端输入
docker build -t 镜像 .
# 在拉一个镜像
# 设置镜像TAG
docker tag 容器id 镜像:标签
# 删除镜像
docker rmi 容器id
# 删除全部镜像
docker rmi $(docker images -q)
# 删除镜像标签
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
# 导出镜像
sudo docker save -o ./压缩文件.tar Names
# 导入镜像
# 恢复权限 rw- --- ---
sudo docker load < 压缩文件.tar
# 推送镜像
# 1.准备一个镜像
# 2.给镜像打tag
# 3.docker push 用户名/仓库:②里面的tag
# 从远程仓库拉一个镜像
docker run -p 4000:80 用户名/仓库:tag