centos7中防火墙替换成了firewalld,但是docker需要外网访问时,需要做端口转发,所以需要安装iptables服务。否则在会报“iptables failed - No chain/target/match by that name”错误。
安装iptables
1、安装iptables-services
$ yum install iptables-services
2、清空防火墙规则
$ iptables -F
$ iptables -X
$ iptables -Z
$ service iptables save
3、把防火墙加入开机启动
$ systemctl start iptables
$ systemctl enable iptables
安装最新版docker
1、配置仓库
$ yum install -y yum-utils device-mapper-persistent-data lvm2
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
2、可以选择是否开启edge和test仓库
$ yum-config-manager --enable docker-ce-edge
$ yum-config-manager --enable docker-ce-test
$ yum-config-manager --disable docker-ce-edge
$ yum-config-manager --disable docker-ce-test
3、安装docker-ce
$ yum install docker-ce
4、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.3-3.el7 @docker-ce-stable
docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
yum install <FQPN> 例如:sudo yum install docker-ce-18.06.3.ce-3.el7
5、启动并加入开机启动
$ systemctl start docker
docker在首次启动时会创建docker0网桥,以及添加新的iptables规则,所以需要执行一遍service iptables save,以防防火墙重启,规则丢失。
$ service iptables save
$ systemctl enable docker
6、关闭docker-daemon
$ systemctl stop docker
$ systemctl disable docker
创建docker容器
1、查找centos7镜像
$ docker search centos:7
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5270 [OK]
ansible/centos7-ansible Ansible on Centos7 121 [OK]
jdeathe/centos-ssh CentOS-6 6.10 x86_64 / CentOS-7 7.5.1804 x86… 108 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 83 [OK]
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 52 [OK]
tutum/centos Simple CentOS docker image with SSH access 44
gluster/gluster-centos Official GlusterFS Image [ CentOS-7 + Glust… 40 [OK]
openshift/base-centos7 A Centos7 derived base image for Source-To-I… 40
kinogmt/centos-ssh CentOS with SSH 26 [OK]
openshift/jenkins-2-centos7 A Centos7 based Jenkins v2.x image for use w… 20
pivotaldata/centos-gpdb-dev CentOS image for GPDB development. Tag names… 10
openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image… 6
drecom/centos-ruby centos ruby 6 [OK]
openshift/wildfly-101-centos7 A Centos7 based WildFly v10.1 image for use … 6
openshift/jenkins-1-centos7 DEPRECATED: A Centos7 based Jenkins v1.x ima… 4
darksheer/centos Base Centos Image -- Updated hourly 3 [OK]
pivotaldata/centos Base centos, freshened up a little with a Do… 3
pivotaldata/centos-mingw Using the mingw toolchain to cross-compile t… 2
blacklabelops/centos CentOS Base Image! Built and Updates Daily! 1 [OK]
openshift/wildfly-100-centos7 A Centos7 based WildFly v10.0 image for use … 1
pivotaldata/centos-gcc-toolchain CentOS with a toolchain, but unaffiliated wi… 1
openshift/wildfly-81-centos7 A Centos7 based WildFly v8.1 image for use w… 1
jameseckersall/sonarr-centos Sonarr on CentOS 7 0 [OK]
smartentry/centos centos with smartentry 0 [OK]
openshift/wildfly-90-centos7 A Centos7 based WildFly v9.0 image for use w… 0
2、下载centos镜像,默认是latest版本
$ docker pull centos
Using default tag: latest
latest: Pulling from library/centos
8ba884070f61: Pull complete
Digest: sha256:8d487d68857f5bc9595793279b33d082b03713341ddec91054382641d14db861
Status: Downloaded newer image for centos:latest
3、查看镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 9f38484d220f 11 days ago 202MB
4、创建容器
$ docker run --name=elk -it --net=bridge -p 9200:9200 -p 9300:9300 -d --restart=on-failure:10 --privileged=true centos /bin/bash
080174ac247bf7a9c91c33e66adbe389d7c1956aa9e508c751959c65ea83ac59
5、查看运行中的容器
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
080174ac247b centos "/bin/bash" 25 seconds ago Up 22 seconds 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp elk