Docker教程(二) Docker环境安装

 


1 Docker环境安装


1.1 相关下载

在CentOS环境下安装Docker,所以需要我们先安装VMware虚拟机和CentOS操系统,作为学习Docker的基础环境。有关安装VMware虚拟机和安装CentOS操作系统见如下链接:

1、VMware安装Linux教程,参见:

2、Linux网络配置与远程连接:


1.2 安装docker

1、在CentOS 7操作系统下yum安装:

执行命令:yum install -y docker

docker desktop 界面 docker 桌面环境_Docker

 

2、查看帮助命令:

执行命令:docker –help

docker desktop 界面 docker 桌面环境_docker_02

 

3、启动 docker服务,并将其设置为开机启动:

执行命令:

systemctl start docker.service

systemctl enable docker.service

docker desktop 界面 docker 桌面环境_Docker_03

 

1.3 docker操作

1、查找镜像:

执行命令:docker search centos

docker desktop 界面 docker 桌面环境_docker_04

 

2、下载镜像

执行命令:docker pull centos

docker desktop 界面 docker 桌面环境_Docker_05

 

3、查看下载镜像

执行命令:docker images

docker desktop 界面 docker 桌面环境_docker desktop 界面_06

 

4、删除镜像

执行命令:docker rmi d4f259423416

docker desktop 界面 docker 桌面环境_docker_07

 

5、运行镜像

输入Hello world,执行命令:docker run centos /bin/echo 'Hello world'

docker desktop 界面 docker 桌面环境_Docker_08

 

6、监控docker进程

列出所有运行中容器包括停止的,执行命令:docker ps –a

docker desktop 界面 docker 桌面环境_Docker_09

 

7、进入容器

执行命令:docker run --name mycentos -it centos /bin/bash

run表示:运行容器

--name表示:给运行的容器定义名称

-it表示:其中i表示:让输入终端表示打开的状态,其中t表示:开启一个伪终端TTY(TTY是电传打字机Teletypewriter的缩写,显示屏的视频终端出现之前,TTY是最流行的终端设备),绑定到标准输入上。

docker desktop 界面 docker 桌面环境_nginx_10

 

8、yum在线安装命令

在docker容器中使用yum安装ip命令,执行命令:yum install net-tools

docker desktop 界面 docker 桌面环境_nginx_11

 

9、exit退出

在容器中执行exit退出命令。表示在容器的生命周期就结束了。执行命令:exit。

在容器中查看列出所有运行中容器包括停止的,执行命令:docker ps–a

docker desktop 界面 docker 桌面环境_nginx_12

 

10、删除容器

如果容器在运行,需要把容器进行停止后再进行删除,或者强制删除。

停止容器,执行命令:docker stop<容器编号>

删除容器,执行命令:docker rm<容器编号>

强制删除容器,执行命令:docker rmf <容器编号>

docker desktop 界面 docker 桌面环境_Docker_13

 

11、容器后台运行

执行命令:docker run -d --name mynginx nginx

-d表示:后台运行

-name表示:自定义名称

nginx表示:查看本地有没有nginx镜像,如果存在则使用本地镜像,如果不存在则执行dockerpull nginx命令,从网上下载到本地再执行。

 

12、进入后台运行的容器

从util-linux版本2.23开始,nsenter工具就包含在其中。它用来访问另一个进程的名字空间。nsenter要正常工作需要有root权限。

如果nsenter命令不存在,需要进行安装,执行命令:yum install -y util-linux

在使用nsenter命令之前需要获取到docker容器的进程,然后再使用nsenter工具进去到docker容器中

执行命令:docker inspect -f {{.State.Pid}}容器名或者容器id

执行命令:nsenter --target上面查到的进程id --mount--uts --ipc --net –pid

docker desktop 界面 docker 桌面环境_nginx_14

解释nsenter指令中进程id之后的参数的含义:

* –mount参数是进去到mount namespace中

* –uts参数是进入到uts namespace中

* –ipc参数是进入到System V IPC namaspace中

* –net参数是进入到network namespace中

* –pid参数是进入到pid namespace中

* –user参数是进入到user namespace中

 

13、编写shell文件

执行命令:vim /usr/local/start.sh

复制如下内容:


#!/bin/bash
cName=$1
cPid=$(docker inspect -f "{{.State.Pid}}" $cName)
nsenter --target "$cPid" --mount --uts --ipc --net –pid

设置可执行权命令,执行命令:chmod +x start.sh

 

14、使用第三方仓库镜像

执行命令:docker run-d --name mynginx2 hub.c.163.com/library/nginx:latest

docker desktop 界面 docker 桌面环境_docker desktop 界面_15

 

15、使用start.sh脚本

执行命令:./start.sh mynginx2

docker desktop 界面 docker 桌面环境_Docker_16