docker容器的安装与使用

摘要:
------------Docker是什么?Docker是一个开源应用程序容器引擎,它基于go语言,遵循Apache2.0协议。Docker允许您以管理应用程序的方式管理基础设施。

------------恢复内容开始------------

什么是Docker:

  docker是一个开源的应用容器引擎,是基于go语言并遵循人Apache2.0协议开源。

  docker容器是完全使用沙箱制,相互之间不会有任何接口,(类似ipone的app),更重要的是容器性能开销极低

docker的应用场景:

  web应用的自动化打包与发布

  自动化测试和持续集成,发布

  在服务型环境中部署和调整数据库或其他的后台应用

  从头编译或者拓展现有的Openshift或cloud Foundry 平台来搭建自己的PaaS环境

docker的优点:

  用于开发,交付和运行应用程序的开放平台,docker能够将应用程序与基础架构分开,从而可以快速交付软件。借助docker可以管理应用程序相同的方式来管理基础架构。通过利用docker的方法来快速交付,测试和部署代码,可以大大减少编写代码和生产环境的中运行代码之间的延迟

  1. 快速,一致地交付应用程序

  2.响应式部署和扩展

  3.在同一硬件上运行更多工作负载

docker的安装:(Ubuntu下)

如果有旧版本的docker,请先卸载后再执行安装命令

  卸载指令:

docker容器的安装与使用第1张docker容器的安装与使用第2张
sudo apt-get remove docker docker-engine docker.io containerd runc
View Code

  1. 更换国内软件源。

docker容器的安装与使用第3张docker容器的安装与使用第4张
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update
View Code

  2.安装需要的包

docker容器的安装与使用第5张docker容器的安装与使用第6张
sudo apt install apt-transport-https ca-certificates software-properties-common curl
View Code

  3.添加GPG密钥,并添加Docker-ce 软件源,还是以中国科技大学的Docker-ce源为例

docker容器的安装与使用第7张docker容器的安装与使用第8张
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu 
$(lsb_release -cs) stable"
View Code

  4.添加成功后更新软件包缓存

docker容器的安装与使用第9张docker容器的安装与使用第10张
sudo apt update
View Code

  5.安装Docker-ce

docker容器的安装与使用第11张docker容器的安装与使用第12张
sudo apt install docker-ce
View Code

  6.设置开机自启动并启动Docker(安装成功后默认已设置并启动,可忽略)

docker容器的安装与使用第13张docker容器的安装与使用第14张
sudo systemctl enable docker
sudo systemctl start docker
View Code

  7.测试运行

docker容器的安装与使用第15张docker容器的安装与使用第16张
sudo docker run hello-world
View Code

  8.添加当前用户到Docker用户组,可以不用sudo运行docker(可选)

docker容器的安装与使用第17张docker容器的安装与使用第18张
sudo groupadd docker
sudo usermod -aG docker $USER
View Code

  9.测试添加用户组

docker容器的安装与使用第19张docker容器的安装与使用第20张
docker run hello-world
View Code

Docker的使用:

  1.在容器内运行程序,比如使用 docker run 命令来在容器内运行一个应用程序 

docker容器的安装与使用第21张docker容器的安装与使用第22张
docker run ubuntu:15.10 /bin/echo "hello world"
hello world

参数解析:
    1. docker  : Docker的二进制执行文件
    2. run : 与前面的docker组合来运行一个容器
    3. ubuntu15.10  指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker就会从镜像仓库Docker Hub 下载公共镜像。(也就是你安装的ubuntu版本号)
    4. /bin/echo "hello world"  : 在启动的容器里执行的命令

上述命令完整意思可以解释为:DOcker以ubuntu15.10镜像创建一个新容器,然后再容器中执行bin/echo "hello world", 然后输出执行结果
View Code

  2. 运行交互式的容器

  通过docker的两个参数 -i  -t  , 让docker运行的容器实现 ” 对话 “ 的能力

docker容器的安装与使用第23张docker容器的安装与使用第24张
docker run -i -t ubuntu:15.10 /bin/bash

参数解析
    -t : 在新容器内指定一个伪终端或终端。
    -i : 允许你对容器内的标准输入 (STDIN) 进项交互

执行完成后,会进入到一个ubuntu15.10 系统的容器中
View Code

  3. 查看版本信息和当前目录下的文件列表

docker容器的安装与使用第25张docker容器的安装与使用第26张
(在容器模式下)
查看版本号 : cat /proc/versio
查看当前目录下的文件列表 : ls
View Code

  4. 退出容器

  使用exit,或者ctrl + D

  5. 启动容器(后台模式)

创建一个以进程方式运行的容器

docker容器的安装与使用第27张docker容器的安装与使用第28张
(ubuntu终端)
docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

在输出中,并不会出现期望的“hello world” 而是一长串字符
这串长字符串叫做容器ID ,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么

首先,我们需要确认容器有在运行,可以通过docker ps 来查看
docker ps

输出结果:
CONTAINER ID    IMAGE            COMMAND                     CREATED         STATUS            PORTS    NAMES
39771f265f7f      ubuntu:18.04  "/bin/sh -c 'while t..."     7 minutes ago   Up 7 minutes                        
unruffled_swirles
View Code

输出详情介绍 :

CONTAINER ID:容器 ID

IMAGE: 使用的镜像

COMMAND:启动容器时运行的命令

CREATED:容器创建的时间

STATUS:容器状态

状态有七种:

  created :已创建

  restaring:重启中

  running:运行中

  removing:迁移中

  paused:暂停

  exited:停止

  dead :死亡

PORTS:容器的端口信息

------------恢复内容结束------------

免责声明:文章转载自《docker容器的安装与使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ajax传参使用json格式uglifyjs压缩批处理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

设置root密码,su与sudo的区别

sudo passwd root 可以修改root密码,但首先会要求你输入当前用户的密码 sudo的意思是switch user do,默认切换到root,要求当前用户的密码,会自动调用exit返回到原用户 su没有参数的话就默认切换到root,要求root密码。可以通过调用exit返回到原用户。 在权限上,sudo的权限可以被配置从而对每个用户,sudo...

生产环境中使用Docker Swarm的一些建议

译者按: 实践中会发现,生产环境中使用单个Docker节点是远远不够的,搭建Docker集群势在必行。然而,面对Kubernetes, Mesos以及Swarm等众多容器集群系统,我们该如何选择呢?它们之中,Swarm是Docker原生的,同时也是最简单,最易学,最节省资源的,至少值得我们多了解一下。本文将介绍一些非常实用的建议。 原文: Tips for...

Spring注解驱动第六讲--@Import注解

在以前的博客中介绍了两种让容器自动装配bean的方法: 1,使用@Bean注解进行装配 2,使用@ComponentScan进行包扫描,扫描带有@Controller,@Service,@Repository,@Component注解的类即可装载bean 还有一种方式,使用@Import注解进行对引用第三方类时使用 用法: 一,直接在主配置类上添加@Imp...

[转载]BITNAMI提供的VMWARE虚拟机设置HOWTO

来源:http://wiki.bitnami.org/Virtual_Appliances_Quick_Start_Guide How to enable sshd? The "ssh" server is disabled by default. You can enable the "ssh" server as follows: For Ubun...

非root用户启动tomcat

sudo默认是需要tty的,通过修改/etc/sudoers文件,将 Defaults requiretty 注释掉即可 用root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限。这意味着你的任何一个jsp脚本都具有root权限,所以可以轻易地用jsp脚本删除你整个硬盘里的东西!所以我们最好不要使用root启动tomcat 使用非...

解决mac iOS 上拉 下拉出现白色空白、白边

表现 pc端:mac鼠标滚动或触屏滚动时,头部、底部会多出一块白色区域 移动端: 手指按住屏幕下拉,屏幕顶部会多出一块白色区域。手指按住屏幕上拉,底部多出一块白色区域。 产生原因 在 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件。这个事件触发的对象是整个 webview 容器,容器自然会被拖动,剩下的部分会成空白。 解决方案 监听事件...