Docker入门基础知识

一、Docker简介

image.png

二、Docker安装

[[email protected] sky9890]# yum install docker 

[[email protected] sky9890]# systemctl start docker.service   #启动Docker服务

[[email protected] sky9890]# systemctl enable docker.service  #随系统启动自动加载

[[email protected] sky9890]# docker     #查看docker客户端

[[email protected] sky9890]# docker -v   #版本

Docker version 1.13.1, build 4ef4b30/1.13.1

三、获取镜像

扫描二维码关注公众号,回复: 9530330 查看本文章

镜像是一个模板,可以从镜像服务器上获取做好的镜像。docker使用docker pull命令来获取需要的镜像。

下别分别获取centos、ubuntu、tomcat、nginx、mysql、mongo等镜像。

1.从docker镜像中查找可用nginx镜像版本获取镜像

[[email protected] sky9890]# docker search centos

[[email protected] sky9890]# docker search ubuntu

[[email protected] sky9890]# docker search tomcat

 [[email protected] sky9890]# docker search nginx

2.从docker镜像中下载需要的版本

[[email protected] sky9890]# docker pull centos

[[email protected] sky9890]# docker pull mysql

[[email protected] sky9890]# docker pull tomcat

[[email protected] sky9890]# docker pull mysql:latest 

[[email protected] sky9890]# docker pull python:3.5  

[[email protected] sky9890]# docker pull mongo:latest

3.显示本地已经下载的镜像

[[email protected] sky9890]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

docker.io/tomcat    latest              4e7840b49fad        3 days ago          529 MB

docker.io/nginx     latest              a1523e859360        4 days ago          127 MB

docker.io/python    3.5                 0320ef7199ca        4 days ago          909 MB

docker.io/mysql     latest              c8ad2be69a22        4 days ago          465 MB

docker.io/php       latest              e66ae809d99a        4 days ago          405 MB

docker.io/httpd     latest              c5a012f9cf45        4 days ago          165 MB

docker.io/mongo     latest              bcef5fd2979d        9 days ago          386 MB

docker.io/ubuntu    latest              72300a873c2c        9 days ago          64.2 MB

docker.io/centos    latest              470671670cac        6 weeks ago         237 MB

三、如何使用容器

1.使用 docker run 命令来在容器内运行一个应用程序。

[[email protected] sky9890]# docker run ubuntu /bin/echo "Hello World"

Hello World

2.运行交换式的容器

[[email protected] sky9890]# docker run -i -t  ubuntu /bin/bash

[email protected]:/# 

[email protected]:/# cat /proc/version 

Linux version 3.10.0-862.11.6.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 

SMP Tue Aug 14 21:49:04 UTC 2018

[email protected]:/# ls

bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

[email protected]:/usr# exit

exit

3.启动容器(后台模式)

[[email protected] sky9890]# docker run -d ubuntu /bin/sh -c "while true;do echo hello world; sleep 1; done"

1f77ab03073f192d18737110bf97ec04b72524fb34e3a570571d4cac6b4e5b31

4.查看docker进程

[[email protected] sky9890]# docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES

1f77ab03073f        ubuntu              "/bin/sh -c 'while..."   38 seconds ago      Up 36 seconds    competent_ramanujan

8778ad75ade3        ubuntu              "/bin/bash"              14 minutes ago      Up 14 minutes      ubuntu-test

7757db1528de        ubuntu              "/bin/bash"              19 minutes ago      Up 15 minutes     distracted_austin

输出详情介绍:

CONTAINER ID: 容器 ID。

IMAGE: 使用的镜像。

COMMAND: 启动容器时运行的命令。

CREATED: 容器的创建时间。

STATUS: 容器状态。

状态有7种:

created(已创建)

restarting(重启中)

running(运行中)

removing(迁移中)

paused(暂停)

exited(停止)

dead(死亡)

PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。

NAMES: 自动分配的容器名称。

5.查看容器的标准输出

[[email protected] sky9890]# docker  logs  1f77ab03073f 

hello world

hello world

......

6.停止容器

[[email protected] sky9890]# docker stop  1f77ab03073f     

1f77ab03073f

[[email protected] sky9890]# docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

8778ad75ade3        ubuntu              "/bin/bash"         18 minutes ago      Up 17 minutes                           ubuntu-test

7757db1528de        ubuntu              "/bin/bash"         22 minutes ago      Up 18 minutes                           distracted_austin

7.删除容器

[[email protected] sky9890]#docker  rm -f 1f77ab03073f

四、Docker实例安装 

1.Docker安装CentOS

[[email protected] sky9890]# docker run -itd --name centos-test centos  

f2896d1d87c996685c7c98fb9c85241a10483fb1f2dcd843a4b0d6cab212d636

#通过exec运行容器

[[email protected] sky9890]# docker exec -it centos-test /bin/bash

[[email protected] /]# exit

[[email protected] sky9890]# docker ps  #安装成功

CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES

f2896d1d87c9        centos              "/bin/bash"         About a minute ago   Up About a minute                       centos-test

8778ad75ade3        ubuntu              "/bin/bash"         34 minutes ago       Up 34 minutes                           ubuntu-test

7757db1528de        ubuntu              "/bin/bash"         39 minutes ago       Up 35 minutes                           distracted_austin

2.Docker安装nginx

#运行容器

[[email protected] sky9890]# docker run --name nginx-test -p 8080:80 -d nginx

5f4aa091f8244b4f21a585b8426240218312b90f46dc23f8cfdc825f1a981b6e

参数说明:

  • --name nginx-test:容器名称。

  • -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。

  • -d nginx: 设置容器在在后台一直运行。

测试

image.png

猜你喜欢

转载自blog.51cto.com/sky9896/2474915