docker 临时记录(阿里云centos7.2.1511 )

查看系统版本号



适用于Redhat/CentOS: [root@iz2zecm4ndtkaue32tynx5z ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
或者
[root@iz2zecm4ndtkaue32tynx5z ~]# rpm -q centos-release
centos-release-7-2.1511.el7.centos.2.10.x86_64



查看系统内核版本

目前,CentOS 仅发行版本中的内核支持 Docker。

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。

Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。



uname -r
或者
uname -a



docker注册表国内镜像源 docker注册表超时_运维

一、通过yum命令在线下载并安装docker



# 安装docker
yum install docker-io # 加入开机启动 chkconfig docker on # 启动docker服务 service docker start



docker注册表国内镜像源 docker注册表超时_运维_02

docker注册表国内镜像源 docker注册表超时_docker_03

二、docker安装Tomcat容器



#查找服务器的tomcat信息
docker search tomcat



docker注册表国内镜像源 docker注册表超时_docker注册表国内镜像源_04

拉取镜像文件



#拉取
docker pull docker.io/tomcat
#或者
docker pull tomcat
#或者拉取指定版本的tomcat
docker pull tomcat:版本号



docker注册表国内镜像源 docker注册表超时_docker注册表国内镜像源_05

去哪查看tomcat的tag版本呢?

打开docker hub的官网,搜索tomcat

docker注册表国内镜像源 docker注册表超时_docker注册表国内镜像源_06

docker注册表国内镜像源 docker注册表超时_运维_07

docker注册表国内镜像源 docker注册表超时_运维_08

docker注册表国内镜像源 docker注册表超时_操作系统_09

 下载tomcat的Tag Name 为8.0的版本



docker pull tomcat:8.0



docker注册表国内镜像源 docker注册表超时_运维_10

1、批量停用容器、删除容器、删除镜像:

停止所有的container,这样才能够删除其中的images:



#批量停止container容器
docker stop -f $(docker ps -aq) #或者 docker stop $(docker ps -a -q) #或者 docker stop $(docker ps -aq)
#批量删除container容器
docker rm -f $(docker ps -aq)
#批量删除images镜像
docker rmi -f $(docker images -aq)



想要删除untagged images,也就是那些id为<None>的image的话可以用



docker rmi $(docker images | grep "^<none>" | awk "{print $3}")



后台运行容器时,进入到已经运行的容器里边




#1、创建容器并在后台运行
docker run <--name myubuntu> -dit <image id> /bin/bash
#2、以exec方式进入容器(docker 1.3及上版本)
docker exec -it <container id> /bin/bash



docker注册表国内镜像源 docker注册表超时_java_11

提交镜像到docker hub上

1、需要注册docker hub账号(略)

2、创建仓库

docker注册表国内镜像源 docker注册表超时_docker注册表国内镜像源_12

docker注册表国内镜像源 docker注册表超时_操作系统_13

3、docker commit命令

commit 主要用于通过差异性,创建一个新的image,当容器中的文件产生变化后,可以提交生成一个新的image,这可以让你debug出你所做的修改,导出发布到其他服务器,这似乎是一种比Dockerfile更好的管理方式。

默认情况下,在提交时,容器的执行将被暂停,以保证数据的完整性,当然你可以指定选项 p ,来禁止。

用法:docker commit 容器ID [dockerhub 的账号名称]/[仓库名称]:[tag版本号]

参数1:已经启动的容器ID

参数2:dockerhub 的账号名称

参数3:仓库名称

参数4:tag版本号

 

docker注册表国内镜像源 docker注册表超时_docker_14


$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS              NAMES
c3f279d17e0a12.04        /bin/bash           7 days ago          Up 25 hours                            desperate_dubinsky
197387f1b436        ubuntu:12.04        /bin/bash           7 days ago          Up 25$ docker commit c3f279d17e0a  svendowideit/testimage:version3

f5283438590d

$ docker images

REPOSITORY                        TAG                 ID                  CREATED             SIZE
svendowideit/testimage            version3            f5283438590d        16 seconds ago      335.7



使用新配置提交容器



$ docker ps

CONTAINER ID       IMAGE               COMMAND             CREATED             STATUS              PORTS              NAMES
c3f279d17e0a12.04        /bin/bash           7 days ago          Up 25 hours                            desperate_dubinsky
197387f1b436        ubuntu:12.04        /bin/bash           7 days ago          Up 25$ docker inspect -f "{{ .Config.Env }}" c3f279d17e0a=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]

$ docker commit --change "ENV DEBUG true" c3f279d17e0atestimage:version3

f5283438590d

$ docker inspect -f "{{ .Config.Env }}" f5283438590d=/ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DEBUG=true]



使用new CMD 和 EXPOSE 说明提交容器



$ docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS              NAMES
c3f279d17e0a12.04        /bin/bash           7 days ago          Up 25 hours                            desperate_dubinsky
197387f1b436        ubuntu:12.04        /bin/bash           7 days ago          Up 25$ docker commit --change='CMD ["apachectl", "-DFOREGROUND"]' -c "EXPOSE 80" c3f279d17e0a  svendowideit/testimage:version4

f5283438590d

$ docker run -d svendowideit/testimage:version4

89373736e2e7f00bc149bd783073ac43d0507da250e999f3f1036e0db60817c0

$ docker ps"apachectl -DFOREGROU"  3 seconds ago       Up 2 seconds        80/tcp             distracted_fermat
c3f279d17e0a        ubuntu:12.04        /bin/bash               7 days ago          Up 25 hours                            desperate_dubinsky
197387f1b436        ubuntu:12.04        /bin/bash               7 days ago          Up 25



2、docker push命令

语法:docker push [参数] 名称或者镜像ID[:标记版本号]

查看容器ID(使用docker ps)然后将其提交为一个新的镜像名称来保存新镜像。



$ docker commit c16378f943fe rhel-httpd



使用新的镜像ID将镜像推送到docker hub仓库。

在此示例中,注册表位于命名registry-host和侦听端口的主机上5000。为此,请使用主机名或IP地址以及注册表的端口标记映像:



$ docker tag rhel-httpd registry-host:5000/myadmin/rhel-httpd
$ docker push registry-host:5000/myadmin/rhel-httpd



上边是官方的示例:

我这里用一个docker hub的官方的redis 生成一个新的redis镜像,push到自己的docker hub仓库。

如图:

docker注册表国内镜像源 docker注册表超时_java_15

去自己的docker hub 仓库查看:

docker注册表国内镜像源 docker注册表超时_docker_16

curl提示不支持https协议解决方法

docker注册表国内镜像源 docker注册表超时_docker注册表国内镜像源_17

原因是因为在安装curl时使用默认安装,但是默认安装并不支持https协议。



卸载重新安装curl,解压。

在进行编译前,最好先将原curl去掉,应该可以直接yum remove curl卸载。

但是不建议,因为怕影响到其它的程序,所以我的方法是which curl,然后把curl命令的路径名称改掉,例如加一个bak后缀,方便后面重新安装时失败,还可以回退到原来的curl



1、下载curl的解压包


Docker编排工具Fig介绍                            

Fig是一个基于Docker的用于快速搭建开发环境的工具,目前Fig团队已经加入Docker公司。Fig通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景。Fig可以和Docker一起来构建基于Docker的复杂应用。
安装Fig

Fig是一个Python Package,你可以使用以下命令来安装:



yum install fig -y
或
pip install -U fig



或者



查看版本



fig --version

docker注册表国内镜像源 docker注册表超时_java_18

 

docker注册表国内镜像源 docker注册表超时_docker_19

docker注册表国内镜像源 docker注册表超时_运维_20