fedora安装docker
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