初识docker并安装
来源:互联网 发布:php管理系统源代码 编辑:程序博客网 时间:2024/05/18 22:43
Docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。官网地址:http://www.docker.com/
下面是docker官网提供的kvm与docker的图片
centos
1、系统版本
[root@jenkins ~]# cat /etc/redhat-release
2、安装epel
[root@jenkins ~]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
3.安装docker
[root@jenkins ~]# yum -y install docker-io[root@jenkins ~]# systemctl start docker 启动docker[root@jenkins ~]# systemctl enable docker 开机自启
4、docker的一些操作
docker pull centos:latest #从docker.io中下载centos镜像到本地 /var/lib/docker/graphdocker images #查看已下载的镜像docker run -i -t centos /bin/bash #启动一个容器docker imr image_id #删除镜像docker rmi $(docker images | grep none | awk '{print $3}' | sort -r) #删除所有镜像docker ps -a #查看所有容器(包括正在运行和已停止的)docker start container #开启一个容器(注意container_id和image_id是完全不一样de)docker logs <容器名orID> 2>&1 | grep '^User: ' | tail -n1 #查看容器的root用户密码,因为docker容器启动时的root用户的密码是随机分配的。所以,通过这种方式就可以得到redmine容器的root用户的密码了docker logs -f <容器名orID> #查看容器日志docker rm $(docker ps -a -q) #删除所有容&删除单个容器docker rm <容器名orID>docker run --name redmine -p 9003:80 -p 9023:22 -d -v /var/redmine/files:/redmine/files -v /var/redmine/mysql:/var/lib/mysql sameersbn/redmine#运行一个新容器,同时为它命名、端口映射、文件夹映射。以redmine镜像为例docker run -i -t --name sonar -d -link mmysql:db tpires/sonar-server # 一个容器连接到另一个容器&sonar容器连接到mmysql容器,并将mmysql容器重命名为db。这样,sonar容器就可以使用db的相关的环境变量了。#当需要把一台机器上的镜像迁移到另一台机器的时候,需要保存镜像与加载镜像。机器adocker save busybox-1 > /home/save.tar使用scp将save.tar拷到机器b上,然后:docker load < /home/save.tardocker build -t <镜像名> <Dockerfile路径> #构建自己的镜像
ubuntu
1、查看版本
root@controller:~# uname -aLinux controller 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linuxroot@controller:~# cat /etc/lsb-release DISTRIB_ID=UbuntuDISTRIB_RELEASE=16.04DISTRIB_CODENAME=xenialDISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
我所使用的是Ubuntu 16.04.2 64位版本和4.4的内核
2、安装docker
root@controller:~# apt install -y docker.ioroot@controller:~# systemctl start dockerroot@controller:~# systemctl enable docker
3、docker版本
root@controller:~# docker versionClient: Version: 1.12.6 API version: 1.24 Go version: go1.6.2 Git commit: 78d1802 Built: Tue Jan 31 23:35:14 2017 OS/Arch: linux/amd64Server: Version: 1.12.6 API version: 1.24 Go version: go1.6.2 Git commit: 78d1802 Built: Tue Jan 31 23:35:14 2017 OS/Arch: linux/amd64
现在,docker 已经安装在您的系统上。您可以从 Docker 库先下载 Docker Image 制作的容器
Docker 的基本用法
要创建一个新的容器,你应该选择一个基本 image 的操作系统,例如启动 Ubuntu 或者 CentOS 或其他系统。您可以搜索一个基本 image 使用 Docker 搜索命令:
1、docker search ubuntu
该命令将显示所有 ubuntu images,你可以自己尝试一下搜索 centos Images。
root@controller:~# docker search ubuntuNAME DESCRIPTION STARS OFFICIAL AUTOMATEDubuntu Ubuntu is a Debian-based Linux operating s... 6356 [OK] rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 95 [OK]ubuntu-upstart Upstart is an event-based replacement for ... 76 [OK] neurodebian NeuroDebian provides neuroscience research... 37 [OK] ubuntu-debootstrap debootstrap --variant=minbase --components... 30 [OK] 32bit/ubuntu Ubuntu for i386 (32bit) 30 armhf/ubuntu Ubuntu is a Debian-based Linux operating s... 27 nuagebec/ubuntu Simple always updated Ubuntu docker images... 22 [OK]tutum/ubuntu Simple Ubuntu docker images with SSH access 18 ppc64le/ubuntu Ubuntu is a Debian-based Linux operating s... 10 aarch64/ubuntu Ubuntu is a Debian-based Linux operating s... 9 sameersbn/ubuntu 9 [OK]nimmis/ubuntu This is a docker images different LTS vers... 7 [OK]i386/ubuntu Ubuntu is a Debian-based Linux operating s... 7 darksheer/ubuntu Base Ubuntu Image -- Updated hourly 3 [OK]libmesos/ubuntu 3 scaleway/ubuntu Ubuntu image on Scaleway 2 s390x/ubuntu Ubuntu is a Debian-based Linux operating s... 1 vcatechnology/ubuntu A Ubuntu image that is updated daily 1 [OK]webhippie/ubuntu Docker images for ubuntu 1 [OK]konstruktoid/ubuntu Ubuntu base image 0 [OK]ossobv/ubuntu Custom ubuntu image from scratch (based on... 0 smartentry/ubuntu ubuntu with smartentry 0 [OK]defensative/socat-ubuntu 0 [OK]pivotaldata/ubuntu A quick freshening-up of the base Ubuntu d... 0
2、现在我们现在 base image到我们的服务中,使用命令:
root@controller:~# docker pull ubuntuUsing default tag: latestlatest: Pulling from library/ubuntue0a742c2abfd: Pull complete 486cb8339a27: Pull complete dc6f0d824617: Pull complete 4f7a5649a30e: Pull complete 672363445ad2: Pull complete Digest: sha256:84c334414e2bfdcae99509a6add166bbb4fa4041dc3fa6af08046a66fed3005fStatus: Downloaded newer image for ubuntu:latest
3、现在,您可以通过使用命令来查看所有已下载的images:
root@controller:~# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEubuntu latest 14f60031763d 13 days ago 119.5 MB
4、Ubuntu 镜像从DockerHub/Docker Registry下载。下一步骤是创建从该镜像的容器。
要创建容器,可以使用docker create 或 docker run
docker create ubuntu
docker create 命令会创建一个新的容器,但不会启动它。所以现在你需要使用运行命令:
docker run -i -t ubuntu /bin/bash
此命令将创建并运行一个基于 Ubuntu 镜像的容器,容器内并运行一个命令/bin/bash,您将在容器内自动运行命令。
root@controller:~# docker create ubuntu0cf6c594de0ccb0567d305d5f6ce5d4f1ad59778534e3d37ccab52e47af03b2froot@controller:~# docker run -i -t ubuntu /bin/bashroot@2d57a682a56a:/# root@2d57a682a56a:/# exitexit
当你输入 Exit 命令退出容器时,容器也是停止运行,如果你想容器在后台运行需要在命令后面添加 -d 参数。
docker run -i -t -d ubuntu /bin/sh -c “while true; do echo hello world; sleep 1; done”/bin/sh -c “while true; do echo hello world; sleep 1; done” this is bash script to echo “hello word” forever.
现在你可以看到容器在后台运行通过命令:
docker ps
如果你想从 bash 命令看日志结果,使用命令:
docker logs NAMES/ContainerID
root@controller:~# docker run -i -t -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"7991f44c7117260c2eb34c64b2a4ce6d5896ea951685b674c2e1fe48fe22fc01root@controller:~# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES7991f44c7117 ubuntu "/bin/sh -c 'while tr" 10 seconds ago Up 10 seconds serene_liskovroot@controller:~# docker logs serene_liskovhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello world
怎样在后台访问容器 shell?这个命令将会连接你的容器 shell:
docker exec -i -t NAMES/ContainerID
root@controller:~# docker exec -i -t serene_liskov /bin/bashroot@7991f44c7117:/#
你可以看到主机名和容器ID是相等的,这意味着你在容器shell内。当你在shell 上键入’exit`,会离开的shell,但容器仍在运行。
你会经常使用的另一个命令是:
docker stop NAME/ContainerID
这将停止容器而不将其删除,这样你就可以用命令重新启动它:
docker start NAME/ContainerID
如果你想删除的容器,先停止它,然后用命令将其删除:
docker rm NAME/ContainerID
- 初识docker并安装
- ubantu14 安装docker 并设置docker权限
- Docker初识之Centos6.2下安装Docker容器
- Docker初识
- 初识Docker
- 初识docker
- docker 初识
- 初识docker
- 初识docker
- 初识Docker
- 初识docker
- 初识Docker
- Docker初识
- 初识Docker
- 初识Docker
- 初识Docker
- 初识Docker
- 初识Docker
- 安卓获取手机设备号
- JDBC(14)—对DAO进行改进修改
- Hadoop 单节点集群配置
- 神经网络模型大小计算
- warning C4129(vs 路径中常出现的‘\’)
- 初识docker并安装
- Computer Networking——Data Link layer QA
- Java注解
- 事务的定义,事务的作用以及Spring事务原理
- strlen注意事项
- avx 快速拷贝
- Linux学习之基础篇_2017.8.3
- yacc command not found
- JAVA发送HttpClient请求及接收请求结果过程