首页 Linux centos7.3安装docker

centos7.3安装docker

18php
2020-03-25
关注:180 关于作者
centos7.3安装docker
环境:
os:centos7.3 1708 64位
docker:1.12
ip:192.168.1.253/24
 
第一步:准备工作
 
以root用户登陆宿主机,并更新系统,且将selinux设置为Permissive,不能设置为disabled,不然会出现docker容器不能运行的情况,且要在安装docker之前配置。
[root@docker ~]# yum update -y
[root@docker ~]# vim /etc/selinux/config
SELINUX=permissive
[root@docker ~]# init 6
 
第二步:开始安装docker,这里采用yum安装
[root@docker ~]# yum install -y docker
[root@docker ~]# systemctl start docker    ###启动docker服务
[root@docker ~]# systemctl stop docker    ###关闭docker服务
[root@docker ~]# systemctl enable docker    ###设置开机启动
[root@docker ~]# systemctl status docker    ###查看dockers运行状态
 
此时,docker已经安装完成!
 
第三步:docker镜像基本操作
[root@docker ~]# docker search centos    ###搜索centos的镜像
[root@docker ~]# docker pull centos    ###pull(拉取)centos镜像
[root@docker ~]# docker images        ###查看本地镜像
 
    此步骤如果发现pull的时候非常慢,甚至失败,则强烈建议使用hub加速器,目前阿里云上有免费的hub,自己可以注册账号申请。
 
    下面我将以centos基本镜像上启动一个容器,并在这个容器上安装lnmp的环境,最后将修改后的容器重新制作成自己的镜像!
 
第四部:运行一个容器
[root@docker ~]# docker run -itd --name=myCentos centos
[root@docker ~]# docker exec -it myCentos /bin/bash    ###进入myCentos容器
 
    进入容器可以安装常用的一些工具如wget等。
 
    相关操作说明:
 
    docker ps    ###查看正在运行的容器
 
    docker ps -a    ###查看所有容器
 
    docker stop 容器ID或容器名称    ###停止正在运行的容器
 
    docker start 容器ID或容器名称    ###启动一个已存在的容器
 
    docker rm 容器ID或容器名称    ###删除一个已存在的容器
 
    ……此处省略lnmp环境的安装过程……
 
第五步:以已存在的容器为基础制作一个镜像
[root@docker ~]# docker commit -a 'kitty.cheng' -m 'centos7 nginx-php7.1' -p myCentos kitty/nginx-php:v1
 
    参数说明:
 
    -a    制作者名称,可以随意
 
    -m   镜像描述信息
 
    -p    如果该容器正在运行,请加上此参数,表示构建镜像时,容器暂停,注意该参数后不需要加任何内容
 
    myCentos    表示根据哪个容器来构建,必须是已存在的容器名称,这里也可以是容器ID
 
    kitty/nginx-php:v1    kitty表示那个仓库名称,nginx-php表示镜像名称,v1表示版本,都可以随意取名
 
    生成新的镜像成功后会显示一串sha256码,如下:
sha256:ed67a324624325173cc9565c21b599b9dd38f753ecd7fd8181bdb0e6b60654ba
 
    也可以通过docker images查看
 
第六步:固定容器的ip地址
 
    1.通过pipework指定docker容器的ip地址,虽然好用,但当容器重启时需要重新指定。
 
        绑定容器ip的格式如下:
 
        pipework br0 容器名称或ID 192.168.1.2/24@192.168.1.1
 
        【略,个人觉得每次重启都需要指定ip很麻烦,可能高手有更好的解决方法,我这里就不做更多说明】
 
    2.通过docker中的--net参数和--ip参数来指定容器ip
[root@docker ~]# docker network create --subnet=172.88.1.0/24 docker-br0  ### docker-br0时自己取的一个网桥的名称,ip地址池不能冲突 ###
[root@docker ~]# docker run -itd -p 8081:80 -v \ /home/wwwroot/test1:/home/wwwroot \
--net docker-br0 --ip 172.88.1.10 --name test1 kitty/nginx-php:v1
[root@docker ~]# docker inspect test1    ###查看容器信息
 
补充:
 
防火墙firewalld配置
 
firewall-cmd --add-port=8081/tcp --permanent    ###开放8081端口,permanent表示永久生效
 
firewall-cmd --reload    ###重新加载firewalld的规则,即更新规则,使其生效
 
docker容器随docker服务器启动而启动的配置
 
在使用Docker run的时候使用--restart参数来设置容器是否随docker服务启动而启动,如下例子:

docker run -itd --name test2 centos --restart=always nginx
回复
  • 消灭零回复