- 浏览: 60533 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (93)
- java (3)
- ios (9)
- wp (15)
- android (0)
- js (1)
- 服务器 (0)
- db (0)
- linux (1)
- python (0)
- xcode (0)
- ide (2)
- maven (0)
- spring (0)
- sql (0)
- 第三方 (1)
- nexus (0)
- nginx (11)
- tomcat (0)
- jenkins (0)
- zookeeper (1)
- git (1)
- svn (0)
- uml (0)
- redis (4)
- activemq (1)
- flume (0)
- kafka (0)
- mysql (1)
- memcached (0)
- mybatis (0)
- mac (0)
- mongo (1)
- docker (6)
- cache (0)
- jvm (0)
- markdown (0)
- springboot (24)
- mycat (3)
- LTS (3)
- 运维 (0)
- opts (1)
- netty (1)
- tcc (0)
- ffmpeg (2)
- 直播 (6)
- cxf (0)
- nodejs (0)
- storm (0)
- elasticjob (0)
- php (0)
最新评论
概念:
虚拟机是虚拟出一套硬件,虚拟机的系统进行的磁盘操作,其实都是在对虚拟出来的磁盘进行操作。当运行 CPU 密集型的任务时,是虚拟机把虚拟系统里的 CPU 指令“翻译”成宿主机的CPU指令并进行执行。两个磁盘层,两个处理器调度器,两个操作系统消耗的内存,所有虚拟出的这些都会带来相当多的性能损失,一台虚拟机所消耗的硬件资源和对应的硬件相当,一台主机上跑太多的虚拟机之后就会过载。
Docker 运行应用采取的是“容器”的解决方案:使用 namespace 和 CGroup 进行资源限制,和宿主机共享内核,不虚拟磁盘,所有的容器磁盘操作其实都是对 /var/lib/docker/ 的操作。简言之,Docker 其实只是在宿主机中运行了一个受到限制的应用程序。
==================================================
mac下安装:
docker toolbox:
https://www.docker.com/products/docker-toolbox
使用docker quickstart terminal启动终端 不要选择item
说明:
kitematic:可视化image可安装列表
virtualbox:默认安装了64位linux 运行docker
所有的镜像以及安装都在virtualbox虚拟的linux中
-------------------------------------------------------
ubuntu:
系统安装时 分辨率问题重洗执行一遍硬盘驱动
Devices-install guest additon CD image
sudo apt-get update
sudo apt-get install docker.io
service docker start
service docker stop
service docker restart
使用时先sudo su
==================================================
国内镜像中心
https://c.163.com/hub#/m/home/
可以在/etc/docker/目录下
touch daemon.json (没有的话 添加一个)
vi daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
==================================================
命令:
---------------------------------------------------------------------
docker version
--------------------------------------
docker info
--------------------------------------
#本地镜像列表
docker images
--------------------------------------
#删除镜像
docker rmi IMAGE ID
docker rmi -f IMAGE ID
#删除所有镜像
docker rmi $(docker images | grep none | awk '{print $3}' | sort -r)
--------------------------------------
docker history IMAGE ID
--------------------------------------
docker search centos
docker pull ubuntu:14.04
#通过163镜像中心下载镜像
docker pull hub.c.163.com/library/ubuntu:latest
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 302fa07d8117 11 days ago 188 MB
--------------------------------------
#查看所有容器
docker ps -a
#查看运行的容器
docker ps
#查看最近一次启动的容器
docker ps -l
docker ps -q
--------------------------------------
#创建容器名称为hihihi <镜像 ID>:b47daa16e381
docker create --name hihihi b47daa16e381
--------------------------------------
docker run -dit 302fa07d8117 /bin/bash
docker run <相关参数> <镜像 ID> <初始命令>
/bin/bash:初始命令 表示容器启动时立即在容器内打开一个shell终端
<命令>&&<命令> 执行多条命令
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
-d:后台以守护状态运行
-p:-p 8081:8080 宿主8081对应容器8080
-e:指定env
-h:host
--name:指定容器的名字
--rm:容器运行完毕会自动删除 --rm=true
所有安装程序都放在了宿主机的/root/software/目录下,现在需要将其挂载到容器的/mnt/software/目录下
docker run -i -t -d -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash
可以启动 IMAGE ID : 302fa07d8117
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
25ad28c234fc 302fa07d8117 "/bin/bash" 14 seconds ago Exited (0) 4 seconds ago loving_aryabhata
--------------------------------------
#进入容器进行操作 CONTAINER ID : 25ad28c234fc
docker attach 25ad28c234fc
--------------------------------------
docker start 25ad28c234fc
ctrl+d 关闭容器并退出
ctrl+q+p 退出
--------------------------------------
docker restart 25ad28c234fc
--------------------------------------
docker stop 25ad28c234fc
--------------------------------------
#快速地强制关闭容器
docker kill 25ad28c234fc
--------------------------------------
docker rm 25ad28c234fc
#删除所有容器
docker rm $(docker ps -a -q)
--------------------------------------
docker logs 25ad28c234fc
#查看容器root用户 用户名密码
docker logs 25ad28c234fc 2>&1 | grep '^User: ' | tail -n1
#实时查看容器日志
docker logs -f <容器名orID>
--------------------------------------
docker inspect <容器名orID>
#查看Volumes项
docker inspect -f '{{.Volumes}}' 5c43ba5e5cae
--------------------------------------
#备份
docker export 5c43ba5e5cae >ubuntu_container.tar
docker save 5c43ba5e5cae >ubuntu_container.tar
--------------------------------------
cat ubuntu_container.tar |docker import - ubuntu:container
docker load <ubuntu_container.tar
--------------------------------------
docker build
目录(/home/samson/testimage/)下有Dockerfile文件
Dcokerfile内容:
# Version 0.2
# 基础镜像
FROM ubuntu:latest
# 维护者信息
MAINTAINER shiyanlou@shiyanlou.com
# 镜像操作命令
RUN apt-get -yqq update && apt-get install -yqq apache2 && apt-get clean
RUN apt-get install -yqq supervisor
RUN mkdir -p /var/log/supervisor
VOLUME ["/var/log/apche2"]
ADD html.tar /var/www
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
WORKDIR /var/www/html
ENV HOSTNAME shiyanloutest
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apche2
ENV APACHE_PID_FILE /var/run/apache2.pid
ENV APACHE_RUN_DIR /var/run/apache2
ENV APACHE_LOCK_DIR /var/lock/apche2
EXPOSE 80
# 容器启动命令
CMD ["/usr/bin/supervisord"]
-t参数指定镜像名称
docker build -t testimage:0.2 /home/samson/testimage/
--------------------------------------
#显示容器中运行的进程信息
docker top 5c43ba5e5cae
--------------------------------------
#复制宿主文件asdfasdfas到容器5c43ba5e5cae的root目录下
docker cp asdfasdfas 5c43ba5e5cae:/root
docker cp 5c43ba5e5cae:/root/asdfasdfas /home
#复制宿主文件夹m内容到容器5c43ba5e5cae的root目录下
docker cp /m 5c43ba5e5cae:/root
--------------------------------------
#查看容器文件结构更改
docker diff 5c43ba5e5cae
--------------------------------------
#在容器5c43ba5e5cae中执行ls /home命令 可以执行容器中的一个shell脚本
docker exec -t -i -d 5c43ba5e5cae ls /home
--------------------------------------
#需要名称
docker rename 5c43ba5e5cae testrename
--------------------------------------
#从容器创建一个新的镜像
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
docker images mymysql:v1
REPOSITORY TAG IMAGE ID CREATED SIZE
mymysql v1 37af1236adef 15 seconds ago 329 MB
修改容器后 执行commit后成为新的image 然后停止&删除旧的容器 启动新的image
--------------------------------------
#docker升级
sudo apt-get install apt-transport-https
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
apt-get install -y lxc-docker
ln -sf /usr/bin/docker /usr/local/bin/docker
docker version
--------------------------------------
#nsenter
docker inspect -f {{.State.Pid}} 容器id
5270
nsenter --target 5270 --mount --uts --ipc --net --pid
---------------------------------------------------------------------
虚拟机是虚拟出一套硬件,虚拟机的系统进行的磁盘操作,其实都是在对虚拟出来的磁盘进行操作。当运行 CPU 密集型的任务时,是虚拟机把虚拟系统里的 CPU 指令“翻译”成宿主机的CPU指令并进行执行。两个磁盘层,两个处理器调度器,两个操作系统消耗的内存,所有虚拟出的这些都会带来相当多的性能损失,一台虚拟机所消耗的硬件资源和对应的硬件相当,一台主机上跑太多的虚拟机之后就会过载。
Docker 运行应用采取的是“容器”的解决方案:使用 namespace 和 CGroup 进行资源限制,和宿主机共享内核,不虚拟磁盘,所有的容器磁盘操作其实都是对 /var/lib/docker/ 的操作。简言之,Docker 其实只是在宿主机中运行了一个受到限制的应用程序。
==================================================
mac下安装:
docker toolbox:
https://www.docker.com/products/docker-toolbox
使用docker quickstart terminal启动终端 不要选择item
说明:
kitematic:可视化image可安装列表
virtualbox:默认安装了64位linux 运行docker
所有的镜像以及安装都在virtualbox虚拟的linux中
-------------------------------------------------------
ubuntu:
系统安装时 分辨率问题重洗执行一遍硬盘驱动
Devices-install guest additon CD image
sudo apt-get update
sudo apt-get install docker.io
service docker start
service docker stop
service docker restart
使用时先sudo su
==================================================
国内镜像中心
https://c.163.com/hub#/m/home/
可以在/etc/docker/目录下
touch daemon.json (没有的话 添加一个)
vi daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
==================================================
命令:
---------------------------------------------------------------------
docker version
--------------------------------------
docker info
--------------------------------------
#本地镜像列表
docker images
--------------------------------------
#删除镜像
docker rmi IMAGE ID
docker rmi -f IMAGE ID
#删除所有镜像
docker rmi $(docker images | grep none | awk '{print $3}' | sort -r)
--------------------------------------
docker history IMAGE ID
--------------------------------------
docker search centos
docker pull ubuntu:14.04
#通过163镜像中心下载镜像
docker pull hub.c.163.com/library/ubuntu:latest
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 302fa07d8117 11 days ago 188 MB
--------------------------------------
#查看所有容器
docker ps -a
#查看运行的容器
docker ps
#查看最近一次启动的容器
docker ps -l
docker ps -q
--------------------------------------
#创建容器名称为hihihi <镜像 ID>:b47daa16e381
docker create --name hihihi b47daa16e381
--------------------------------------
docker run -dit 302fa07d8117 /bin/bash
docker run <相关参数> <镜像 ID> <初始命令>
/bin/bash:初始命令 表示容器启动时立即在容器内打开一个shell终端
<命令>&&<命令> 执行多条命令
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
-d:后台以守护状态运行
-p:-p 8081:8080 宿主8081对应容器8080
-e:指定env
-h:host
--name:指定容器的名字
--rm:容器运行完毕会自动删除 --rm=true
所有安装程序都放在了宿主机的/root/software/目录下,现在需要将其挂载到容器的/mnt/software/目录下
docker run -i -t -d -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash
可以启动 IMAGE ID : 302fa07d8117
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
25ad28c234fc 302fa07d8117 "/bin/bash" 14 seconds ago Exited (0) 4 seconds ago loving_aryabhata
--------------------------------------
#进入容器进行操作 CONTAINER ID : 25ad28c234fc
docker attach 25ad28c234fc
--------------------------------------
docker start 25ad28c234fc
ctrl+d 关闭容器并退出
ctrl+q+p 退出
--------------------------------------
docker restart 25ad28c234fc
--------------------------------------
docker stop 25ad28c234fc
--------------------------------------
#快速地强制关闭容器
docker kill 25ad28c234fc
--------------------------------------
docker rm 25ad28c234fc
#删除所有容器
docker rm $(docker ps -a -q)
--------------------------------------
docker logs 25ad28c234fc
#查看容器root用户 用户名密码
docker logs 25ad28c234fc 2>&1 | grep '^User: ' | tail -n1
#实时查看容器日志
docker logs -f <容器名orID>
--------------------------------------
docker inspect <容器名orID>
#查看Volumes项
docker inspect -f '{{.Volumes}}' 5c43ba5e5cae
--------------------------------------
#备份
docker export 5c43ba5e5cae >ubuntu_container.tar
docker save 5c43ba5e5cae >ubuntu_container.tar
--------------------------------------
cat ubuntu_container.tar |docker import - ubuntu:container
docker load <ubuntu_container.tar
--------------------------------------
docker build
目录(/home/samson/testimage/)下有Dockerfile文件
Dcokerfile内容:
# Version 0.2
# 基础镜像
FROM ubuntu:latest
# 维护者信息
MAINTAINER shiyanlou@shiyanlou.com
# 镜像操作命令
RUN apt-get -yqq update && apt-get install -yqq apache2 && apt-get clean
RUN apt-get install -yqq supervisor
RUN mkdir -p /var/log/supervisor
VOLUME ["/var/log/apche2"]
ADD html.tar /var/www
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
WORKDIR /var/www/html
ENV HOSTNAME shiyanloutest
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apche2
ENV APACHE_PID_FILE /var/run/apache2.pid
ENV APACHE_RUN_DIR /var/run/apache2
ENV APACHE_LOCK_DIR /var/lock/apche2
EXPOSE 80
# 容器启动命令
CMD ["/usr/bin/supervisord"]
-t参数指定镜像名称
docker build -t testimage:0.2 /home/samson/testimage/
--------------------------------------
#显示容器中运行的进程信息
docker top 5c43ba5e5cae
--------------------------------------
#复制宿主文件asdfasdfas到容器5c43ba5e5cae的root目录下
docker cp asdfasdfas 5c43ba5e5cae:/root
docker cp 5c43ba5e5cae:/root/asdfasdfas /home
#复制宿主文件夹m内容到容器5c43ba5e5cae的root目录下
docker cp /m 5c43ba5e5cae:/root
--------------------------------------
#查看容器文件结构更改
docker diff 5c43ba5e5cae
--------------------------------------
#在容器5c43ba5e5cae中执行ls /home命令 可以执行容器中的一个shell脚本
docker exec -t -i -d 5c43ba5e5cae ls /home
--------------------------------------
#需要名称
docker rename 5c43ba5e5cae testrename
--------------------------------------
#从容器创建一个新的镜像
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
docker images mymysql:v1
REPOSITORY TAG IMAGE ID CREATED SIZE
mymysql v1 37af1236adef 15 seconds ago 329 MB
修改容器后 执行commit后成为新的image 然后停止&删除旧的容器 启动新的image
--------------------------------------
#docker升级
sudo apt-get install apt-transport-https
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
sudo sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
apt-get install -y lxc-docker
ln -sf /usr/bin/docker /usr/local/bin/docker
docker version
--------------------------------------
#nsenter
docker inspect -f {{.State.Pid}} 容器id
5270
nsenter --target 5270 --mount --uts --ipc --net --pid
---------------------------------------------------------------------
发表评论
-
Docker 为容器添加ip
2017-05-08 10:07 604#查看网卡 找打与外部交互的网卡 ifconfig #添加 ... -
Docker nsenter
2017-05-03 17:52 372安装: cd /tmp; curl https://www.k ... -
Docker tomcat安装
2017-05-03 17:57 3981.创建目录 /root/mdocker/dockerfile ... -
Docker 私有仓库
2017-05-03 17:56 398http://blog.csdn.net/wangtaokin ... -
Dockerfile
2017-05-03 17:51 486Dockerfile //////////////////// ...
相关推荐
3)本文涵盖内容有:daemon.json、docker.service、docker-20.10.7.tgz、docker-compose-linux-x86_64 4)本资源对应的配套博客内容地址为:https://blog.csdn.net/qq_23845083/article/details/141352156,有需要...
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录...
Docker 离线安装 MySQL 5.7 使用说明 本文将指导你如何使用离线的 Docker 镜像包 (docker-mysql-5.7.tar.zip) 来在 Linux 系统中安装并运行 MySQL 5.7 容器。 前提条件 • 已安装 Docker 环境。 • MySQL 5.7 ...
在IT行业中,Docker和Docker Compose是两个极为重要的工具,它们在容器化应用程序部署和管理方面扮演着核心角色。本文将详细讲解如何通过二进制方式安装Docker 19.03.14及其配套的Docker Compose,并讨论它们的主要...
资源名称: Docker Desktop for Windows 10 (Docker Desktop Installer.exe) 概述: Docker Desktop for Windows 10 是一个官方提供的强大工具,它允许用户在Windows 10操作系统上轻松运行Docker容器化应用。Docker ...
Docker 离线一键安装步骤: 1. 将该目录下的docker文件夹上传至服务器任意位置: 2. 将当前目录切换至上传后的文件目录中,执行以下脚本: sh install.sh docker-19.03.9.tgz 3. 等待执行完成,即可安装完成。 该...
Docker在IT行业中是一款非常重要的容器化平台,它允许开发者将应用程序及其依赖打包到一个可移植的容器中,便于在各种环境中快速部署和运行。在Windows操作系统上安装Docker,可以借助Docker Desktop或者Docker ...
离线环境下,在centos7.6系统上安装docker-ce-19.03,nvidia-docker2.4版本,其中docker-ce-19.03在docker-local.tar压缩文件里面,nvidia-docker2在nvidia-docker2.zip文件中。 具体安装流程如下: 1.安装docker ...
在IT行业中,Docker和Docker Compose是两个非常重要的工具,它们被广泛应用于容器化应用程序的部署和管理。Ubuntu是流行的Linux操作系统,它为Docker提供了良好的支持。本资源包提供的是Ubuntu 20.10.12版本上的...
Docker Desktop 是一款强大的开发工具,使开发者能够在 Windows 环境中高效构建、共享和运行容器化应用程序。它提供了一种无缝的开发体验,允许用户通过简单的图形界面和命令行工具来管理 Docker 容器和镜像。 ...
docker集成wkhtmltopdf,安装包就是封装好的镜像文件,直接解压执行就可以; -- 解压镜像包<上面安装包> docker load -- 运行docker docker run -itd -v /data/share:/data/share -m 8G --name="wkhtmltopdf" ...
安装docker 获取root 权限 su root 拷贝所有文件到 /opt/docker/ (如果没有 docker目录执行 mkdir -p /opt/docker) yum localinstall -y /opt/docker/*.rpm 安装docker-compose cd /opt/docker/ tar ...
在Windows 7上安装Docker应用通常涉及到使用Docker Toolbox,因为Docker的官方版本对Windows 7的支持有限。Docker Toolbox是一个包含了多个工具的集合,它为旧版Windows操作系统(如Win7和Win8)提供了运行Docker的...
arm 架构 docker运行nginx镜像包,arm 架构 docker运行nginx镜像包,arm 架构 docker运行nginx镜像包,arm 架构 docker运行nginx镜像包,arm 架构 docker运行nginx镜像包,arm 架构 docker运行nginx镜像包,arm 架构...
Docker基础入门到实战 网盘文件永久连接 01.Docker基本概念和框架 01.Docker -课程介绍 02.Docker -Docker 简介 03.Docker -Docker 的基本组成 04.Docker -Docker 容器相关技术简 02.Docker的安装和部署 01.Docker...
Docker搭建SRS视频服务器 Docker 搭建 SRS(Simple Realtime Server)视频服务器是一种便捷的部署方式,利用 Docker 容器化技术可以快速实现流媒体服务环境的一键安装与运行。SRS 是一个高性能、易于扩展的实时流...
在Linux ARM64架构上,Docker和Docker Compose是两种非常重要的容器化技术工具。Docker使得应用程序可以被封装在轻量级的容器中,实现可移植性和隔离性,而Docker Compose则允许用户通过YAML配置文件来定义和运行多...
说明:在最小化CentOS Linux release 7.6.1810 中制作yum源,docker-ce是centos 7系统x86架构rpm包。 使用: 1、上传文件到/data/docker-ce解压,或者任意目录后修改docker-ce-26.1.0.repo 中baseurl路径。 2、mv ...
【标题】4.4.4版本Windows Docker是一个针对Windows操作系统的Docker容器化平台的特定版本,它提供了在Windows上运行Linux和Windows容器的能力。这个版本可能是针对4.4.4版Docker Engine进行优化和更新的,确保了在...
离线升级docker,首先制作本地yum源方式升级docker版本。以下是操作步骤,需要的安装包已压缩到包里: 首先关闭docker服务 1、手动安装repo-local-rpm里面的rpm 2、复制docker-rpm到/mnt 3、执行createrepo /mnt/...