历史笔记docker相关

电脑临时文档越来越多,太忙都无法进一步,笔记先放一放到网上。

[root@root ~]# uname -r
2.6.32-431.el6.x86_64
#解决 curl: (35) SSL connect error
yum update nss
#导入public key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#安装ELRepo到CentOS
#可以去http://elrepo.org/tiki/tiki-index.php 选择要安装的ELRepo 
rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
#安装 kernel-lt(lt=long-term)
yum --enablerepo=elrepo-kernel install kernel-lt -y
#编辑grub.conf文件,修改Grub引导顺序
vim /etc/grub.conf
default=0
#重启
reboot
#通启后内核升级完成
[root@root ~]# uname -r
4.4.131-1.el6.elrepo.x86_64

#-----------------------------------------------------------------------------------------------
#安装docker
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

vim /etc/docker/daemon.json

{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}

service docker restart

#-----------------------------------------------------------------------------------------------

docker pull centos:6.9

[root@root tmp]# docker pull centos:6.9
6.9: Pulling from centos
055b9989266a: Pull complete 
f1070d829305: Pull complete 
e071bce628ba: Pull complete 
Digest: sha256:e7bdc458659b6e644ae85694f2baaf3727c06ad82186fca80f4e3a8e88907cc3
Status: Downloaded newer image for centos:6.9
[root@root tmp]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              6.9                 e071bce628ba        6 months ago        194.7 MB

#------------------------------------------------------------------------------------------

mkdir /docker-2

#-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
docker run -i -t -v /docker-2/:/mnt/software/ e071bce628ba /bin/bash
[root@f430bf874c15 /]# cd mnt
[root@f430bf874c15 mnt]# ls
software
[root@f430bf874c15 mnt]# cd software/
[root@f430bf874c15 software]# 
#安装apache
/usr/local/apache/bin/apachectl start

# 当以上步骤全部完成后,可使用exit命令,退出容器。


# 正如上面所描述的那样,可以通过“镜像名”或“镜像 ID”来启动容器,与上次启动容器不同的是,现在不再进入容器的命令行,而是直接启动容器内部的 Tomcat 服务。
# 此时,需要使用以下命令:
docker run -d -p 80:80 -v /docker-2/:/mnt/software/ --name docker-apache e071bce628ba /bin/bash

#docker run -p 80:80 -i -t -v /docker-2/:/mnt/software/ e071bce628ba /bin/bash

#相关参数包括:

#-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。

#-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 58080 端口,这样就向外界暴露了 58080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。

#-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

#--name:表示容器名称,用一个有意义的名称命名即可


# docker ps -a
CONTAINER ID  IMAGE         COMMAND         CREATED         STATUS        
f23598b6544d  mytomcat:1.0  "/root/run.sh"  6 minutes ago   Up 6 minutes  
 
# docker stop f235
docker run -d -p 80:80 -v /docker-2/:/mnt/software/ --name docker-apache e071bce628ba /bin/bash
#如果出现 docker0: iptables: No chain/target/match by that name.
#重启docker
#docker rm 63f8516ea12d  慎用 会删窗口
[root@root tmp]# docker run -d -p 80:80 -v /docker-2/:/mnt/software/ --name docker-apache e071bce628ba /bin/bash
e01115e8fc38397002d96cfc042541881b75bcf7044ebf653b6f4a811e250706

#---------------------------------------------------------------------------------------

docker run -p 80:80 -i -t -v /docker-2/:/mnt/software/ --name docker-apache e071bce628ba /bin/bash

进入docker的方式 
docker attach 44fc0f0582d9
运行容器
docker start docker-apache
获得ip
[root@root /]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS                NAMES
f8e47a1cb2e8        e071bce628ba        "/bin/bash"         24 hours ago        Up 9 minutes              0.0.0.0:80->80/tcp   docker-apache       
38fcf08241d9        e071bce628ba        "/bin/bash"         24 hours ago        Exited (0) 24 hours ago                        jolly_heisenberg    
97efa598060a        e071bce628ba        "/bin/bash"         24 hours ago        Exited (0) 24 hours ago                        furious_cray        
[root@root /]# docker inspect f8e47a1cb2e8 | grep IPAddress
        "IPAddress": "172.17.0.6",
        "SecondaryIPAddresses": null,
        
端口转发
iptables -t nat -A  DOCKER -p tcp --dport 80 -j DNAT --to-destination 172.17.0.6:80

#如果出现docker0: iptables: No chain/target/match by that name 重启docker服务

iptables -t nat -A DOCKER -p tcp -d 0/0 --dport 80 -j DNAT --to-destination 172.17.0.1:80


#crond docker无法正常运行
# cat /etc/pam.d/crond 
account    required   pam_access.so
account    include    password-auth
#session    required   pam_loginuid.so  #注释此行
session    include    password-auth
auth       include    password-auth


#导出镜像
docker export f8e47a1cb2e8 > webapache.ta
#另一台复制镜像
scp -p root@101.226.249.36:/webapache.tar /docker-2/

[root@root docker-2]# docker import - webapache < webapache.tar
docker images

[root@root docker-2]# docker import - webapache < webapache.tar 
372841e00b13922d266fb5524cc94f3ec23ac9d8d16df80d2e3767e0d9396de3
[root@root docker-2]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
webapache           latest              372841e00b13        12 seconds ago       947 MB
update              latest              ba1c44627b7b        About a minute ago   947 MB
centos              6.9                 e071bce628ba        6 months ago         194.7 MB


docker run -d -p 80:80 -v /home/public_html/:/home/public_html/ --name webapache 372841e00b13  /bin/bash

docker run -p 80:80 -i -t -v /home/public_html/:/home/public_html/ --name webapache 372841e00b13  /bin/bash

标签: none

非特殊说明,本博所有文章均为博主原创。

最新文章

发表评论