docker 使用教程(1)

1.docker安装启动
通过yum安装docker,官方使用了两种方式安装
安装教程:https://docs.docker.com/engine/installation/
yum install docker
如果是通过yum atp-get安装,应该已经生成了相应的服务
sudo service docker start
或者你需要这样来手动运行
/usr/bin/docker daemon -H tcp://0.0.0.0:2375
怎么知道一切正常?
执行info指令
docker info

查看你所有的镜像
docker images
一般教程到这里,你可能被告知可以开始运行一个ubuntu镜像,这很简单
docker run -i -t ubuntu
docker会自动下载和启动ubuntu容器

其他镜像你可以在这里找到:https://hub.docker.com/

但是在你开始漫长的镜像更新之前,你可以先询问一下,如果你附近有一个私有仓库,那么过程会快的多。下面介绍基于私有仓库使用,如果要使用官方仓库,去掉教程中IP的部分便可。
比如192.168.1.1/centos:6 改为 centos:6 就行了。

2.使用私有仓库

构建镜像

1.假设有个镜像仓库:192.168.1.1:5000 是企业的私有仓库
下载镜像
docker pull 192.168.1.1:5000/centos:6
或者直接运行镜像
docker -i -t run 192.168.1.1:5000/centos:6

2.如果仓库不是https协议,你需要修改你的docker守护进程的启动参数,让它像这样运行,如果你是自动安装,那么需要修改启动脚本。

vi /usr/lib/systemd/system/docker.service
usr/bin/docker daemon -H fd:// –insecure-registry 192.168.1.1:5000

3.运行Centos镜像 docker run -i -t 192.168.1.1:5000/centos:6
如果运气不错,在一小段时间的下载后,你进到了另个命令提示符号下面了,这就是容器内部了。如果下载后没有打开命令提示符,你可以将指令修改为:

正常的容器内部,注意@后面就是容器ID

[root@c5583c969ac3 /]$

没有看到终端的情况下执行
docker run -i -t 192.168.1.1:5000/centos:6 /bin/bash

新增的/bin/bash指的是,容器启动后,要执行的指令。不必担心,你不会被要求重新下载一次,本地已经缓存了这个镜像。

开始构建
在当前linux系统下安装你所需要的环境,这里我简单的安装一个php环境来作为例子。
yum install httpd
…省略

[root@c5583c969ac3 /]# httpd -v

搞定!

退出bash

[root@c5583c969ac3 /]$ exit
exit
[root@localhost ~]#

回到了自己系统的界面。。。

通过下面的指令,你可以看到你启动过的容器。
docker ps -a

你会发现容器最后一列names被起了个奇怪的名字,没办法,因为你启动的时候,没有指定好,就被随便取了(tip:–name用于命名)。第一列是一个ID,它唯一指定了你的容器。注意:当镜像启动为一个容器后,它会被保存起来,当你再次docker run xxxx的时候,会再生成一个新容器,而不是使用刚才这个,如果你还想使用原先的容器,你得用docker start

docker start c5583c969ac3
使用docker run启动一个容器
docker run -i -t 192.168.1.1:5000/centos:6

应该是成功了,可是命令提示符没有变化,这是因为我们少了2个参数:-i -t ,-i 参数保证容器的STDIN是开启的,-t 是告诉Docker为容器创建一个伪tty终端。不幸的是docker start 并不支持-i -t 参数,那么你需要使用另个指令来回到容器中

重新附着到容器
注意在attach 指令后,我敲了个回车,才真正进到了命令提示符下

[root@localhost ~]# docker attach c5583c969ac3
[root@c5583c969ac3 /]#

在启动的时候,就附着上去 注意-a参数

[root@localhost ~]# docker start -a c5583c969ac3

提交这个镜像
提交之前,注意,刚才我们的容器的名字是随机得到的,容器的ID是一个记不住的16进制数,所以我们得给容器一个好名字,再提交为镜像。
docker commit c5583c969ac3 zqifa/hello-world
使用docker images看下我们提交的镜像
centos 和 hello-world看起来都在
docker images

不过你只是在你本地创建了一个hello-php镜像,并没被提交给服务器

用tag指令给hello-world加上私有仓库地址,然后push
docker tag 4981e55b52a9 192.168.1.1:5000/myname/hello-world
docker push 192.168.1.1:5000/myname/hello-world

漫长的上传后,我的镜像就可以被其他人使用了,虽然这个镜像基本一无是处。。。如果你希望它做点什么,最好是指定一个指令,比如启动一个服务器,或者一系列的服务器,你可以将你要做的事写成一个shell脚本,然后在启动后执行:比如我创建了一个容器用来看httpd版本(挺废的,就是举个例子。。。)

docker run –name httpd-v 192.168.1.1:5000/kevin/hello-php /usr/bin/httpd -v
每次你想看httpd版本的时候,你可以:
docker start -a httpd-v

3.docker常用命令

docker 如何查看已存在的容器所挂载的目录
$ docker inspect container_name | grep Mounts -A 20

出处:www.l1mn.com

原文标题:docker 使用教程(1)

原文地址:https://www.l1mn.com/p/docker-help-1.html

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

分类:docker
标签:docker
评论

皖ICP备2023023451号

Copyright © L1MN.COM 联系方式:l1mnfw@163.com