当前位置首页 > Fedora知识

fedora安装docker

阅读次数:272 次  来源:admin  发布时间:

1、系统环境

[root@kvm-server ~]# cat /etc/redhat-release

Fedora release 25 (Twenty Five)

2、安装docker源

dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

3、安装docker

dnf install docker-ce -y

ystemctl start docker

4、下载指定版本镜像

docker pull fedora:25

5、查询镜像

[root@kvm-server ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
fedora              25                  9cffd21a45e3        4 months ago        232MB

5、查看docker版本

[root@kvm-server ~]# docker -v

Docker version 17.09.1-ce, build 19e2cf6

7、帮助,docker --hel

8、概要信息

[root@kvm-server ~]# docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 17.09.1-ce
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 3f2f8b84a77f73d38244dd690525642a72156c64
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.13.16-100.fc25.x86_64
Operating System: Fedora 25 (Server Edition)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 7.776GiB
Name: kvm-server
ID: XF6P:6D6I:T73M:MMD3:FOTN:B7DK:LO5K:I7CU:MFPH:LDH4:MZDU:XZKK
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

9、容器查看,即进程查看,docker ps -a

[root@kvm-server ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                            PORTS               NAMES
fcae6afa516a        fedora:25           "bash"              5 minutes ago       Exited (127) About a minute ago                       wonderful_wright
d71539205c04        fedora:25           "bash"              8 minutes ago       Exited (0) 8 minutes ago                              gracious_babbage
829b9b7c2947        fedora:25           "bash"              About an hour ago   Exited (127) About an hour ago                        tender_ride

10、删除镜像

[root@kvm-server ~]# docker rmi 9cffd21a45e3
Untagged: fedora:25
Untagged: fedora@sha256:322cb01bbca26972c98051bacd3ab8555cec059496d64d35ee78b15de9ea0d06
Deleted: sha256:9cffd21a45e3541e3677bec005b1eabddf4970080df8a48dbf1b37af66988733
Deleted: sha256:2cfb71422fa8ec41789ec12f0e5a57a9d081e6aed12d7e68a5321b088ed383ad

注意点:

1. 删除前需要保证容器是停止的  sto

2. 需要注意删除镜像和容器的命令不一样。 docker rmi ID  ,其中 容器(rm)  和 镜像(rmi)

3. 顺序需要先删除容器

11、搜索镜像

[root@kvm-server ~]# docker search learn/ubuntu
NAME                                                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ubuntu                                                    Ubuntu is a Debian-based Linux operating s...   7340                [OK]                
dorowu/ubuntu-desktop-lxde-vnc                            Ubuntu with openssh-server and NoVNC            171                                     [OK]
rastasheep/ubuntu-sshd                                    Dockerized SSH service, built on top of of...   132                                     [OK]
ansible/ubuntu14.04-ansible                               Ubuntu 14.04 LTS with ansible                   90                                      [OK]
ubuntu-upstart                                            Upstart is an event-based replacement for ...   81                  [OK]                

12、在docker容器中运行hello word

[root@salt-master ~]# docker run fedora:25 echo "hello word"
hello word

13、创建交互式容器

[root@kvm-server ~]# docker run -i -t fedora:25 /bin/bash

[root@ffd847818f79 /]# whoami

root

退出交互式

exit

13、运行docker commit 提交刚修改的容器

例如:

#启动容器
[root@salt-master ~]# docker run -i -t fedora:25 /bin/bash
[root@e57f300244dd /]# ls -a
.   .dockerenv  boot  etc   lib    lost+found  mnt  proc  run   srv  tmp  var
..  bin         dev   home  lib64  media       opt  root  sbin  sys  usr

#获取最后一个容器 或 ps -a 查看所有容器
[root@salt-master ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                            PORTS               NAMES
e57f300244dd        fedora:25           "/bin/bash"         4 minutes ago       Exited (127) About a minute ago                       inspiring_murdock

#提交修改的容器
[root@salt-master ~]# docker commit e57f300244dd fefora:v1
sha256:0b6206810fa4e908fa7b601c320f1de8eb60fc2d7ab3fd7b545946547bb81213

#查看刚提交的容器
[root@salt-master ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
fefora              v1                  0b6206810fa4        15 seconds ago      232MB
fedora              latest              9110ae7f579f        2 weeks ago         235MB
fedora              25                  9cffd21a45e3        4 months ago        232MB

14、启动docker镜像,映射到80端口

[root@salt-master ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
fefora              v1                  0b6206810fa4        4 minutes ago       232MB


[root@salt-master ~]# docker run -d -p 80:80 -p 8022:22 fefora:v1
4a31eac694f878f19abcd6f94d91368a78d4d81a9adaf5a0560226b53134ca40

解析:-p指定容器启动后docker上运行的端口映射及容器里运行的端口,80:80,第一个80表示docker系统上的80,第二个80表示docker虚拟机里面的端口。用户默认访问本机80端口,自动映射到容器里面的80端口。


#查看进程
[root@salt-master ~]# docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
4a31eac694f8        fefora:v1           "/bin/bash"         18 seconds ago      Exited (0) 16 seconds ago                       stoic_hopper
  

15、Docker独立IP及容器互联

内置bridge(nat)
缺点:
需要配套服务注册/发现,否则宿主上端口分配困难,容易冲突。
由于每个容器暴露的端口都不一致,造成前端路由层nginx配置(proxy_pass)里无法使用dns的方式。
端口映射要在容器启动时就指定好,后期无法变更。
测试发现nat不支持websocket。
自建桥接网络
优点:
每个容器都有独立ip,对外提供服务,如nginx+php,nginx+resin,都可以使用默认的80端口
由于容器暴露端口都可以使用80端口,因此前端路由层nginx配置(proxy_pass)里可以使用dns的方式。
无需为了后期端口映射添加而烦恼
桥接支持websocket
当我们把docker镜像下载下来之后,启动一个容器,登录容器我们会发现容器的ip如下图所示:
停止服务
 /etc/init.d/docker stop
关掉docker0
ifconfig docker0 down

#查看网卡
 [root@salt-master ~]# brctl show
bridge namebridge idSTP enabledinterfaces
br08000.78e7d19330a8noenp2s0f0
vnet0
vnet1
docker08000.02429b6ed17fno
virbr08000.5254005f6aeeyesvirbr0-nic
vnet2
删除docker
 brctl  delbr  docker0
 增加网桥br0
  yum install bridge-utils
 CentOS6.5下的配置:
   vim  /etc/sysconfig/docker
other_args="-b=br0"
如下图:

   配置bridge桥接网络:
   在/etc/sysconfig/network-scripts/下,修改ifcfg-eth0网卡配置,同时增加ifcfg-br0桥接网卡配置如下:
   vi  ifcfg-eth0内容如下:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=static
BRIDGE=br0
vi  ifcfg-br0内容如下:
DEVICE="br0"
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
TYPE=Bridge
上一篇:ubuntu先安装php再安装apache后,php不解析
下一篇:第一次部署Struts2时出现错误java.lang.ClassNotFoundException:org.apache.str