Docker教程:dokcer的配置和命令
http://blog.csdn.net/pipisorry/article/details/50803028
Docker命令查询
终端运行docker命令,它会打印所有可用的命令列表及使用描述:# docker
查看命令具体参数及用法: # docker run --help
Docker环境查看
docker info
docker未运行时显示:FATA[0000] Get http:///var/run/docker.sock/v1.18/info: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
运行时显示:
Containers: 29
Images: 25
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: <unknown>
Dirs: 83
Dirperm1 Supported: true
Execution Driver: native-0.2
Kernel Version: 4.2.0-35-generic
Operating System: Ubuntu 14.04.4 LTS
CPUs: 4
Total Memory: 7.621 GiB
Name: pika
ID: SQ73:OQIM:4OUF:W6BK:LW22:6DAL:7W5S:OTEC:PGYM:IJOW:H355:DUBR
WARNING: No swap limit support
校验Docker服务的状态
确保Docker服务是启动的
root@pika:/home/pi# service docker status
Note: 这个命令必须root执行,sudo都不行?
$sudo service docker restart
stop: Unknown job: docker
停止docker
#service docker stop
启动docker
#service docker start
把Docker安装为自启动服务
让它随服务器的启动而自动运行:
# update-rc.d docker defaults
Configure Docker to start on boot:
$ sudo systemctl enable docker
添加用户权限
如果不是root用户的的操作,可以添加一个用户到Docker用户组,这样操作Docker时无需使用sudo命令
root:/home/pi#gpasswd -a pi docker
正在将用户“pi”加入到“docker”组中
logout再login后,使用pi用户就可以运行docker命令了,否则会提示连接错误。
当然也可以创建一个docker用户组,避免使用root用户,并让docker用户组的用户具有同root的权限。
# usermod -aG docker ubuntu
Docker测试
docker run hello-world
Note: Docker注册服务器从Docker Hub获取到最新的Hello World镜像,下载到了本地。可以再次运行Hello World镜像。
如果本地有这个image就从它创建容器,否则从公有仓库下载。
查看Docker可用镜像
Docker官方网站专门有一个网址来存储所有可用的镜像,你可以通过浏览这个网页来查找你想要使用的镜像(要注册登录)。
或者使用命令行的工具来检索:使用以下命令搜索CentOS的Docker容器
# docker search centos
Docker镜像下载
拉取一个镜像,即从Docker注册服务器的软件仓库下载一个Docker的镜像。
# docker pull ubuntu:14.04
# docker pull ubuntu
运行Docker容器:交互式进入新安装的虚拟机中
在Bash Shell下建立Ubuntu容器是非常简单的,只需运行一行命令即可。
-i选项:让输入输出都在标准控制台进行
-t选项:分配一个tty
root:/home/pi#docker run -it ubuntu bash #或者/bin/bash
root@dce1a8276a18:/#
退出可以使用ctrl+d或者ctrl+c
或者ctrl+p + ctrl+q(这种可以退出到宿主机,而保持container仍然在运行,通过docker ps可以看出)
列出正在运行的容器docker ps
使用docker inspect命令我们可以查看更详细的关于某一个容器的信息。可以使用镜像id的前面部分,不需要完整的id。
列出所有的容器docker ps -a
(包括正在运行的容器和已经退出的容器)
列出本地(已下载的和本地创建的)镜像docker images
从镜像中运行一个新实例容器
# docker run
停止一个容器
# docker stop
重命名一个存在的容器
docker rename old_name new_name
Note: 不是image,是运行中的,也就是修改docker ps中的容器名
从本地移除一个或多个指定的镜像docker rmi
docker rmi [options "o">] <image> "o">[image...] 或者docker rmi image_id
-f 强行移除该镜像,即使其正被使用;
--no-prune 不移除该镜像的过程镜像,默认移除。
docker rmi nginx:latest postgres:latest python:latest
查看镜像的历史版本:
docker history (image_name)
将镜像推送到registry:
docker push (image_name)
从本地移除一个或多个指定的容器docker rm
docker rm [options "o">] <container> "o">[container...]
docker rm nginx-01 nginx-02 db-01 db-02
sudo docker rm -l /webapp/redis
-f 强行移除该容器,即使其正在运行;
-l 移除容器间的网络连接,而非容器本身;
-v 移除与容器关联的空间。
Docker从主机上复制文件到docker images中
通过docker run命令的-v/--volume参数
#docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 c917d6497f55 7 weeks ago 188 MB
将本机目录/media/pika/softwares/Downloads/LinuxInstalls分享到Docker的/mnt 目录下
#docker run -v /media/pika/softwares/Downloads/LinuxInstalls:/mnt -it c917d6497f55 bash
root@f26f7d459863:/# ls /mnt
Firefox-latest-x86_64.tar.bz2 hadoop-2.6.4.tar.gz
desktop.ini jdk-8u91-linux-x64.tar.gz
eclipse-jee-mars-2-linux-gtk.tar.gz pdfstudio
当然也可以通过dockerfile文件的ADD方法
容器运行的一个 例子
以后台进程的方式运行hello
docker:sample_job=$(docker run -d ubuntu /bin/sh -c "while true; do echo Docker; sleep 1; done")
sample_job命令会隔一秒打印一次Docker,使用docker
logs可以查看输出的结果。如果没有给这个job起名字,那这个job就会被分配一个id,以后使用命令例如docker
logs查看日志就会变得比较麻烦。
运行docker logs命令来查看job的当前状态:docker logs $sample_job
所有Docker命令可以用以下命令查看:docker help
名为sample_job的容器,可以使用以下命令来停止:docker stop $sample_job
使用以下命令可以重新启动该容器:docker restart $sample_job
如果要完全移除容器,需要先将该容器停止,然后才能移除。像这样:
docker stop $sample_job
docker rm $sample_job
将容器的状态保存为镜像,使用以下命令:docker commit $sample_job job1
注意,镜像名称只能取字符[a-z]和数字[0-9]。
Docker常见软件安装
root@dc34d732b74d:/# apt-get update
#安装git
root@dc34d732b74d:/# apt-get install -y git
#安装make
root@dc34d732b74d:/# apt-get install -y make
#安装g++
root@dc34d732b74d:/# apt-get install -y g++
#安装ssh
root@dc34d732b74d:/# apt-get install -y ssh
root@dc34d732b74d:/# /etc/init.d/ssh start #启动ssh
ssh后台容器长时间运行
不至于运行了几秒后容器会自动退出
docker run -d -p 22 -p 80:8080 python_ubuntu /usr/sbin/sshd -D
其中:
-d 表示使容器在后台运行
-p 指定端口设置,这里ubuntu容器内运行着的SSH Server占用22端口
-p 80:8080 表示端口的映射,映射主机端口到容器,方便外部访问容器内服务,主机端口80可以省略,省略表示把容器端口8080映射到一个动态端口。ubuntu将会以8080端口运行ssh,但对外(容器外)映射的端口为80。
/usr/sbin/sshd 表示启动ssh服务
-D 表示容器长时间运行,不至于几秒后退出
之后可以用docker ps命令查看容器是否成功运行,发现容器被随机赋予了一个****SSH连接端口号。
在主机用ssh命令来登录这个容器:
ssh root@127.0.0.1 -p ****
Note: 启动镜像实例的时候,指定了 -p 80:8080,容器开放8080端口,映射到宿主机端口就是80。知道宿主机IP地址,那就可以自由访问容器了。在宿主机上,通过curl测试一下即可:curl http://192.168.*.*。当然,你也可以使用浏览器访问啦。真实情况,可能不会让SSH直接对外开放80端口,一般都会位于nginx/apache或者防火墙的后面。
from: http://blog.csdn.net/pipisorry/article/details/50803028
ref:更多命令:Docker命令使用详解
Docker教程:dokcer的配置和命令的更多相关文章
- Jenkins服务使用 宿主机的docker、docker-compose (Jenkins 执行sudo命令时出现“sudo: no tty present and no askpass program specified”,以及 docker-compose command not found解决办法)
若要转载本文,请务必声明出处:https://www.cnblogs.com/zhongyuanzhao000/p/11681474.html 原因: 本人最近正在尝试CI/CD,所以就使用了 Jen ...
- Docker教程:docker machine的配置和命令
http://blog.csdn.net/pipisorry/article/details/50921335 安装virtualbox 如果要使用virtualbox,首先要安装virtualbox ...
- Docker教程:使用docker配置python开发环境
http://blog.csdn.net/pipisorry/article/details/50808034 Docker的安装和配置 [Docker教程:docker的安装] [Docker教程: ...
- Docker教程:dokcer machine的概念和安装
http://blog.csdn.net/pipisorry/article/details/50920982 Docker machine介绍 做为Docker容器集群管理三剑客之一的Docker ...
- docker 使用教程(2)常用命令
1. 查看docker信息(version.info) # 查看docker版本$docker version # 显示docker系统的信息$docker info 2. 对image的操作(sea ...
- Docker教程:docker的概念及安装
http://blog.csdn.net/pipisorry/article/details/50754385 Why docker 对于运维来说,Docker提供了一种可移植的标准化部署过程,使得规 ...
- Docker容器的基本了解和命令
一.docker和虚拟机的对比 特性 容器 虚拟机 启动 秒级 分钟级 硬盘使用 一般为MB 一般为GB 性能 接近原生 弱于 系统支持量 单机支持上千个容器 一般几十个 更高效的利用系统资源 更快速 ...
- Docker的安装,配置,更新和卸载
我们可以在Linux中安装Docker并运行Hello world应用程序.通过下面这些操作,我们将会学到更多有关于Docker的基础特征.我们将会学到如何: 安装Docker引擎 在一个容器中运行软 ...
- docker教程之从一头雾水到不一头雾水(2)
书接上文:docker教程之从一头雾水到不一头雾水(1) 运行镜像 先查看下本地有哪些镜像 [root@ichz ~]# docker images REPOSITORY TAG IMAGE ID C ...
随机推荐
- EF 6.x、EF Core实现dynamic动态查询和EF Core实现多个上下文实例池你了解多少?
前言 很长一段时间没有写博客了,今天补上一篇吧,偶尔发现不太愿意写博客了,太耗费时间,不过还是在坚持当中,毕竟或许写出来的东西能帮到一些童鞋吧,接下来我们直奔主题.无论是在在EF 6.x还是EF Co ...
- Hibernate 自动生产表
hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. 今天就来演示一下Hibernate最初级的 ...
- jvm(四):垃圾回收
垃圾回收我们主要从以下三个方面进行描述 垃圾对象的判断 目前判断对象为垃圾对象有两种方法:引用计数法,可达性分析法,目前普遍是的是可达性分析法 可达性分析法的实现原理: 定义gcroot一直往下找,如 ...
- day06 Request Response
rw 读写模板的设置 day05 Request Response 1. HttpServletResponse 简介 1.1 Response 的 OutputStream 输出中文的问题 1.2 ...
- CentOS6.8虚拟机安装及ORALCE安装记录
CENTOS6.8安装数据库及设置自启动脚本教程 作者:张欣橙 本文所需要的所有参数均位于文末附录中 一.新建虚拟机 选择下一步 选择下一步 选择稍后安装操作系统 选择LINUX 版本 CentOS ...
- 剑指架构师系列-spring boot的logback日志记录
Spring Boot集成了Logback日志系统. Logback的核心对象主要有3个:Logger.Appender.Layout 1.Logback Logger:日志的记录器 主要用于存放日志 ...
- 更快实现Android多级树形选择列表
快速实现Android多级树形列表,这个库是在鸿洋多级树形列表demo中修改而来. 解决的问题: 1. 支持ID为int类型和String类型. 2. 支持多级复选框选中,使用只需一行代码. 3. 支 ...
- 计算机网络之万维网WWW
万维网 WWW (World Wide Web)并非某种特殊的计算机网络,而是一个大规模的.联机式的信息储藏所. 万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰 ...
- 监听RecyclerView滑动到末端
监听RecyclerView滑动到末端 效果图 实现 1. 添加滑动到末端的接口 package com.kongqw.recyclerviewdemo; /** * Created by kongq ...
- Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)
前言:上篇是介绍构建TV app前要知道的一些事儿,开发Android TV和手机本质上没有太大的区别,屏大,焦点处理,按键处理,是有别于有手机和Pad的实质区别.今天来介绍TV中Metro UI风格 ...