1、Docker基础入门实战

1、系统版本

[[email protected] ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

2、关闭selinux

[[email protected] ~]# sed -i 's/=enforcing/=disabled/g' /etc/selinux/config

[[email protected] ~]# getenforce

Enforcing

[[email protected] ~]# setenforce 0

[[email protected] ~]# getenforce

Permissive

[[email protected] ~]#reboot

3、修改yum源

[[email protected] ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

[[email protected] ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[[email protected] ~]# yum makecache

4、安装网络工具

[[email protected] ~]# yum -y install net-tools

5、Docker安装相关操作

[[email protected] ~]# yum -y install docker

[[email protected] ~]# docker -v

Docker version 1.13.1, build 94f4240/1.13.1

[[email protected] ~]# systemctl status docker

[[email protected] ~]# systemctl start docker

[[email protected] ~]# systemctl restart docker

[[email protected] ~]# systemctl stop docker

[[email protected] ~]# systemctl enable docker打开开机启动

[[email protected] ~]# systemctl disable docker关闭开机启动

6、Docker镜像相关操作

[[email protected] ~]# docker imags                                                                                        查看镜像

[[email protected] ~]# docker search centos7                                                                          搜索镜像

[[email protected] ~]# docker pull docker.io/openshift/base-centos7                                    下载镜像

[[email protected] ~]# docker save docker.io/openshift/base-centos7 > /tmp/centos7.tar    保存镜像

[[email protected] ~]# docker rmi docker.io/openshift/base-centos7                                     删除镜像

[[email protected] ~]# docker load < /tmp/centos7.tar                                                           导入镜像

[[email protected] ~]# docker tag docker.io/openshift/base-centos7  centos7                       重命名镜像

7、交互式启动容器相关操作

[[email protected] ~]# docker run --name docker_01 -it centos7 /bin/bash                            创建容器

[[email protected] ~]# docker ps -a                                                                                          查看容器

[[email protected] ~]# docker stop docker_01                                                                         停止容器

[[email protected] ~]# docker start docker_01                                                                         启动容器

[[email protected] ~]# docker kill docker_01                                                                            杀掉容器

[[email protected] ~]# docker rm docker_01                                                                            删除容器

8、后台启动容器相关操作

[[email protected] ~]# docker run --name docker_01 -d centos7 /bin/bash -c 'while true; do echo docker_01; sleep 10; done'        创建容器

[[email protected] ~]# docker exec -it docker_01 /bin/bash                                                                                                                进入后台启动的容器

[[email protected] ~]# docker logs docker_01                                                                                                                                     查看容器日志

[[email protected] ~]# for id in `docker ps -a | grep -v CONTAINER | awk '{print $1}'`;do docker start $id; done                               批量启动容器

[[email protected] ~]# for id in `docker ps -a | grep -v CONTAINER | awk '{print $1}'`;do docker stop $id; done                               批量停止容器

[[email protected] ~]# for id in `docker ps -a | grep -v CONTAINER | awk '{print $1}'`;do docker rm $id; done                                  批量删除容器

[[email protected] ~]# for id in `docker ps -a | grep -v CONTAINER | awk '{print $1}'`;do docker kill $id; done                                  批量杀掉容器

9、自定义镜像commit相关操作

[[email protected] ~]# docker commit docker_01 centos7_base                                                                                                          用容器docker_01生成镜像centos7_bash

10、自定义镜像dockerfile相关操作

[[email protected] ~]# mkdir -pv /docker/nginx

[[email protected] ~]# cd /docker/nginx

[[email protected] nginx]# cat install.sh

yum install -y wget tar gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel

cd /usr/local/src

wget 'http://nginx.org/download/nginx-1.12.2.tar.gz'

tar -zxvf nginx-1.12.2.tar.gz

cd nginx-1.12.2

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream  --with-stream_ssl_module

make

make install

rm -rf /usr/local/src

#使用daemon off配置让nginx在前台运行

sed -i -e '/worker_processes/a daemon off;' /usr/local/nginx/conf/nginx.conf

exit 0

[[email protected] nginx]# cat Dockerfile

FROM centos7_base

COPY install.sh /tmp/install.sh

RUN sh /tmp/install.sh

[[email protected] nginx]# docker build -t centos7_nginx .

[[email protected] nginx]# docker run --name docker_nginx -d centos7_nginx /bin/bash -c '/usr/local/nginx/sbin/nginx'

[[email protected] nginx]# docker exec -it docker_nginx /bin/bash

bash-4.2# netstat -tuanlp

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 0.0.0.0:80

11、Docker容器网络模式相关操作(默认为桥接模式)

创建桥接模式容器docker_briage(此模式有独立网络)

[[email protected] ~]# docker run --name docker_bridge --net=bridge -d centos7_nginx /bin/bash -c '/usr/local/nginx/sbin/nginx'

[[email protected] ~]# docker exec -it docker_bridge /bin/bash

bash-4.2# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 172.17.0.2  netmask 255.255.0.0  broadcast 0.0.0.0

inet6 fe80::42:acff:fe11:2  prefixlen 64  scopeid 0x20<link>

ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)

RX packets 8  bytes 648 (648.0 B)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 8  bytes 648 (648.0 B)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

inet 127.0.0.1  netmask 255.0.0.0

inet6 ::1  prefixlen 128  scopeid 0x10<host>

loop  txqueuelen 0  (Local Loopback)

RX packets 0  bytes 0 (0.0 B)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 0  bytes 0 (0.0 B)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

bash-4.2#

创建主机模式容器docker_host(此模式与宿主机共享网络)

[[email protected] ~]# docker run --name docker_host --net=host -d centos7_nginx /bin/bash -c '/usr/local/nginx/sbin/nginx'

[[email protected] ~]# docker exec -it docker_host /bin/bash

bash-4.2# ifconfig

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0

inet6 fe80::42:d8ff:fe1d:d64e  prefixlen 64  scopeid 0x20<link>

ether 02:42:d8:1d:d6:4e  txqueuelen 0  (Ethernet)

RX packets 76675  bytes 3915531 (3.7 MiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 92619  bytes 163138586 (155.5 MiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 192.168.130.66  netmask 255.255.255.0  broadcast 192.168.130.255

inet6 fe80::250:56ff:fe90:d195  prefixlen 64  scopeid 0x20<link>

ether 00:50:56:90:d1:95  txqueuelen 1000  (Ethernet)

RX packets 510747  bytes 394855762 (376.5 MiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 306995  bytes 432987349 (412.9 MiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

inet 127.0.0.1  netmask 255.0.0.0

inet6 ::1  prefixlen 128  scopeid 0x10<host>

loop  txqueuelen 0  (Local Loopback)

RX packets 4  bytes 200 (200.0 B)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 4  bytes 200 (200.0 B)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

bash-4.2#

12、Docker容器模式下端口映射

[[email protected] ~]# docker run -p 8801:80 -p 8802:80 --name docker_map -d centos7_nginx /bin/bash -c '/usr/local/nginx/sbin/nginx'

[[email protected] ~]# docker exec -it docker_map /bin/bash

bash-4.2# netstat -tuanlp

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1/nginx: master pro

bash-4.2# exit

exit

[[email protected] ~]# netstat -tuanlp

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1344/sshd

tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2253/master

tcp        0     52 192.168.130.66:22       192.168.53.137:65516    ESTABLISHED 17791/sshd: [email protected]

tcp        0      0 192.168.130.66:22       192.168.53.137:49616    ESTABLISHED 13743/sshd: [email protected]

tcp6       0      0 :::22                   :::*                    LISTEN      1344/sshd

tcp6       0      0 ::1:25                  :::*                    LISTEN      2253/master

tcp6       0      0 :::8801                 :::*                    LISTEN      18215/docker-proxy-

tcp6       0      0 :::8802                 :::*                    LISTEN      18204/docker-proxy-

[[email protected] ~]#

13、Docker容器与宿主机文件共享相关操作

[[email protected] ~]# docker run --privileged=true -v /htdocs:/usr/local/nginx/html/htdocs --name docker_share -d centos7_nginx /bin/bash -c '/usr/local/nginx/sbin/nginx'

原文地址:http://blog.51cto.com/kaiyuandiantang/2133109

时间: 2024-08-11 03:23:24

1、Docker基础入门实战的相关文章

Docker基础入门实战(一)

Docker基础入门实战 第1章          docker简介 1.1  what is Docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源,源代码部署在GitHub上. Docker是通过内核虚拟技术来提供容器的资源隔离与安全保障,由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,从而提高资源的利用率. Docker的目标是实现轻量级的操作系统虚拟化解决方案. 1.2 

零基础入门 实战mpvue2.0多端小程序框架

第1章 课程快速预览(必看!!!)在这一章节中,老师讲带领你快速预览课程整体.其中,涉及到为什么要做这么一门实战课程.制作一个小程序的完整流程是怎么样的,以及如何做项目的技术选型. 第2章 30 分钟快速入门微信小程序(已掌握,可略过)在这一章节中,老师讲带领你从如何注册微信小程序开发者账号.工具的下载开始,到完成第一个小程序,再到组件与 API 的使用整个过程,最后来总结微信原生小程序的缺点. 第3章 30 分钟快速入门 Vue.js 框架(已掌握,可略过)在这一章节中,老师将带领你从第一个

Docker基础入门及示例

Docker近几年的发展可谓一日千里,特别从是2013年随着一个基于LXC的高级容器引擎开源,到现在,其在linux和windows上都有了很好的支持,并且已经有很多公司将docker用于实际的生产环境部署当中.这篇文章我将针对以下几个方面简单介绍: 1. docker的基础介绍 2. docker在windows下的安装配置 3. 基础命令介绍 4. 使用vs2017在docker下调试 5. 打包一个.net core站点镜像 一. docker基础介绍 可能很多朋友对docker还停留在听

Docker 基础入门

1.概念介绍 1.1 容器 1.1.1 介绍 容纳其它物品的工具,可以部分或完全封闭,被用于容纳.储存.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. 1.1.2 要使用容器必须需要在内核级支持2中技术 namespaces 名称空间 Control Group(cgroups) 控制组 (1)为什么centos6 版本不能使用容器? 因为centos6 内核版本是2.6:容器需要一个user的名称空间,直到内核3.8版本才有:  namespace 系统调用参数  隔离内容  内核

Docker基础入门 (一)—— 简介

Docker -- 简介 1. Doker是个什么玩意 说Docker是什么之前,先来看一看Docker为什么会出现.我们知道,在学习过程中我们需要频繁地安装配置一些软件,不管是在Windows下还是在Linux,这些东西的配置过程都是非常费时费力的,稍有不慎就得删了重来,换一台机器,还得重来一次,更讨厌的是经常出现一些环境的兼容性问题(比如一些软件只兼容win7).那么有没有这样一种解决方式:软件带环境安装,省去麻烦的安装配置过程,并且完全不用考虑环境兼容问题,因为自带环境嘛.也就是说,安装的

docker基础入门之二

一.docker文件系统: linuxFS包括boot file system 和 root file system boot file system (bootfs),包含bootloader和kernel,在系统启动完成后,kernel滞留内存,bootfs解除挂载: root file system(rootfs),包括类似/bin,/usr, /lib等目录,这些和kernel无关,这也是不同linux发行版本的差异所在:       Linux  FS Linux FS in Dock

docker基础入门之一

一.概述 dotCloud是docker公司的前身,专注于PaaS的云计算平台:可能是支持最广泛的PaaS平台: 使用container的概念来解决应用stack部署的难题: 定义:什么是docker 开源的应用容器引擎,方便打包发布应用到容器中: Go语音领域比较大型的应用: docker实现: docker是container技术的实现,最早使用LXC作为container的引擎,最新版本的docker使用libcontainer替换了lxc: 采用aufs文件系统来管理Image和cont

docker基础入门

docker安装配置系统版本(centos 6.5 x64) 注意:centos系统版本需要是centos 6 以上,并且系统需要是64位才能安装docker,如果是不是64位系统安装的时候会提示找不到docker-io 简介:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app).几乎没有性能开销,可以很容易地在

Docker基础入门总结

一.什么是Docker 官方文档描述:“Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrast