Docker容器学习与分享04

Docker容器的基本操作(2)

基于docker分享03的centos容器,接着学习docker容器的基本操作。
docker分享03中创建了一个centos镜像,如果想要查看容器的具体信息就要使用docker inspect命令:
图片 1
这样就可以看到这个容器的详细信息了。
接着查看这个容器的ip地址,第一种办法,在容器内查看ip:
图片 2
第二种方法通过docker inspect查看ip地址:
图片 3

学会这些最基础的操作后,我就试着用容器来部署nginx服务。
图片 4
新创建一个centos容器,将容器的80端口映射到本机的65530端口,接着进入容器:
图片 5
安装的时候发现找不到nginx的安装包,这是因为nginx位于第三方源里面不在官方源里面,所以执行以下操作:
图片 6
这样就可以开始安装nginx了。
图片 7
等待安装完成。
安装完成之后新建一个存放网站的目录并编辑一个静态页面:
图片 8
图片 9
接着编辑nginx的配置文件
图片 10
图片 11
将红色的部分改成刚刚创建的目录。
图片 12
运行nginx服务,运行之后可以用ps命令查看nginx服务已经在运行。
接着按Ctrl+P+Q让centos容器在后台运行
然后通过curl命令来查看网页:
图片 13
可以看到获取页面成功,除了通过本机的ip获取网页外,还可以通过容器的ip地址来获取网页,首先先查看一下容器的ip地址:
图片 14
获取到ip之后就可以通过ip来获取页面了,由于是置界用的容器ip所以不需要加端口,默认使用80端口:
图片 15
获取成功!
这样就成功的在容器中建立了一个静态网页服务!

镜像资源

docker login daocloud.io

 

zhangjianbin

zhangbin@163.com

289792436@qq.com

 

新的账号:

zhangjianbin1991

zhangbin@163.com

xyz9353@163.com

 

参考:

配置Docker加速器

[root@xiaoyuer zhang]#
service docker start

Redirecting to /bin/systemctl
start  docker.service

[root@xiaoyuer zhang]# sudo
sed -i
‘s|other_args=”|other_args=”–registry-mirror=
|g’ /etc/sysconfig/docker

[root@xiaoyuer zhang]# sudo
sed -i
“s|OPTIONS=’|OPTIONS=’–registry-mirror=
|g” /etc/sysconfig/docker

[root@xiaoyuer zhang]# sudo
sed -i
‘N;s|\[Service\]\n|\[Service\]\nEnvironmentFile=-/etc/sysconfig/docker\n|g’
/usr/lib/systemd/system/docker.service

[root@xiaoyuer zhang]# sudo
sed -i ‘s|fd://|fd:// $other_args |g’
/usr/lib/systemd/system/docker.service

[root@xiaoyuer zhang]# sudo
systemctl daemon-reload

[root@xiaoyuer zhang]# sudo
service docker restart

Redirecting to /bin/systemctl
restart  docker.service

[root@xiaoyuer zhang]#
docker pull ubuntu

 

配置 Docker 加速器

该脚本可以将
–registry-mirror 加入到你的 Docker 配置文件 /etc/default/docker

curl
-sSL | sh
-s 

 

交互启动容器

docker run -i -t ubuntu
/bin/bash

 

查看容器

docker ps
 正在运行的容器

       -a
:所有容器

     
 -l:最后一个容器

 

ctrl + d
:退出当前容器

 

容器的配置信息

docker inspect
容器id

 

自定义容器名:

docker run –name=ubuntu-docker
-i -t ubuntu

 

重新启动停止的容器

docker start -i 容器名

 

docker stop 容器名

 

删除停止的容器

docker rm 容器id

 

守护式容器

docker run -i -t 

 

ctrl+p  ctrl+q :将交互式的容器转为后台运行

 

进入正在运行的守护容器

docker attach ubuntu-docker

 

启动守护式容器

1、能够长期运行
2、没有交互式会话
3、适合运行应用程序和服务

docker run -d

例:docker
run -i -t -d –name=centos7 docker.io/centos 

 

查看容器内的日志:

docker logs -tf ubuntu-docker

    -t:加时间戳

    -f:一直跟踪

 

查看容器内进程

docker top 容器名

 

在运行中的容器内启动新进程

docker exec 容器名

docker exec -t -i ubuntu-docker /bin/bash

 

停止守护式容器

docker stop 容器名

docker kill 容器名

 

删除镜像文件:

docker rmi docker.io/ubuntu

 

 

容器端口映射:

    run [-P][-p]

    docker run -P -i -t centos /bin/bash   映射所有端口

    docker run -p 80 -i -t centos /bin/bash   映射单一端口

1、只指定容器的端口,宿主机端口随机
docker run -p 80 -i -t centos /bin/bash

2、指定宿主机到容器的端口映射
docker run -p 8088:80 -i -t centos /bin/bash

3、指定宿主机ip到容器的端口
dokcer run -p 0.0.0.0:80 -i -t centos /bin/bash

4、指定宿主机ip和端口到容器的端口映射
docker run -p 0.0.0.0:8088:80 -i -t centos /bin/bash

 

docker容器中安装软件

docker 容器中部署静态网站

给容器映射端口为80

docker run -p 80 -i -t ubunt

报错:

 

root@f9e3e466599d:/# apt-get install -y ping
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package ping

## 执行更新命令才能安装软件
root@f9e3e466599d:/# apt-get update

 

安装 nginx

apt-get install -y nginx

安装 vim

apt-get install -y vim

 

查看nginx安装位置

whereis nginx

 

查看nginx 目录

ls /etc/nginx/

 

进入nginx 静态网站目录

/etc/nginx/sites-enabled/

 

创建静态网站目录和页面

mkdir -p /var/www/html 创建index.html 页面

 

编辑 nginx 配置,设置静态网站目录

vim /etc/nginx/sites-enabled/default

 

docker ps 查看正在运行的容器,包括端口信息

也可以

docker port web

也可以 查看容器中的进程相关信息

docker top web

 

验证nginx 页面

[root@www ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f9e3e466599d docker.io/ubuntu “/bin/bash” 32 minutes ago Up 32 minutes
0.0.0.0:32768->80/tcp web  访问宿主机的 32768端口,即可映射到容器中的
80端口上,也就是访问到nginx上

访问 nginx中的页面
[root@www ~]# curl -v

也可以通过宿主机的浏览器来访问

ifconfig 查看宿主机ip

   这样才可以访问到nginx 上啦

 

也可以访问容器的ip地址来访问nginx

查看容器的ip地址

docker inspect web

[root@www ~]# curl -v   默认就是80端口

 

当关闭容器时,再启动容器,nginx 是关闭状态的

关闭容器

docker stop web

启动容器

docker start -i web

容器转为后台运行 ctrl+p ctrl+q

查看容器进程 

docker top web   nginx 没在后台运行

在后台运行的容器中启动 nginx

docker exec web nginx   启动后台运行容器的 nginx
,也就是对后台容器开启新进程

 

当一个容器关闭后,再启动时,ip地 和宿主机的端口映射 可能会发生改变

 

来源: 

 

 

systemctl替代了service命令

 

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注