Docker学习笔记(二)

1.查看docker是否存在,功能是否正常?
$ sudo docker info

2.运行第一个docker
$ sudo docker run -i -t ubuntu /bin/bash
-i 标志保证容器中的STDIN是开启的
-t标志是交互式shell的“半边天”
ubuntu 是系统镜像
/bin/bash 是容器内的shell

3.获取容器的主机名和容器的ID
/# hostname
/# cat /etc/hosts

4.容器的网络配置情况
/# ip a

5.查看容器中运行的进程
/# ps -aux

6.安装软件
/# apt-get update && apt-get install vim(软件名)

7.停止容器:输入exit

8.查看当前系统中容器列表
docker ps -a
如果命令式docker ps 那只能看到正运行的容器
加了 -a 则可以看到所有的容器

9.容器命名
$ sudo docker run --name bob_the_container(容器名) -i -t ubuntu /bin/bash
合法的容器命名包含【a-zA-Z0-9_.-】,即小写a~z,大写A~Z,数字0~9,下划线,圆点,横线

10.重新启动已经停止的容器
$ sudo docker start bob_the_container(容器名)
也可以根据容器ID启动

11.附着到容器上(不用/bin/bash 也能运行一个shell会话)
$ sudo docker attach bob_the_container(容器名)
也可以根据容器的id附着

 

=======以上容器皆为交互运行的容器===========


 

==========以下容器为守护式容器=============


1.什么是守护式容器?
守护式容器(daemonized container)没有交互式会话,是长期运行的容器,非常适合运行应用程序和服务,大多数情况下我们都需要以守护式来运行我们的容器

2.创建长期运行的容器
$ sudo docker run --name daemon_dave(容器名) -d ubuntu /bin/sh -c "while true; do echo hello world;sleep 1;done"

-d参数:docker会将容器放到后台运行
while循环:一直打印hello world,直到容器或进程停止运行

3.查看容器日志
$ sudo docker logs daemon_dave
如果加上 -f 那么可以监控日志,与tail -f命令非常相似
tail -f --lines(行数) 跟踪容器日志的某一片段
为了更方便调试,还可以加上-t标志为日志加上时间戳,如:tail -ft
--lines

4.查看容器内部的进程
$ sudo docker top daemon_dave(容器名)

5.在容器内部运行进程
$ sudo docker exec -d daemon_dave touch /etc/new_config_file
-d 之后指定要在内部执行这个命令的容器名和执行的命令
上述命令会在daemon_dave 容器内创建一个空的文件,文件名为/etc/new_config_file

6.在daemon_dave容器中启动shell
$ sudo docker exec -t -i daemon_dave /bin/bash

7.停止守护式容器
$ sudo docker stop daemon_dave
同样也可以用容器ID
或者$ sudo docker skill daemon_dave

8.自动重启容器
$ sudo docker run --restart=always --name daemon_dave -d ubuntu /bin/sh -c "while true;do echo hello world; sleep 1;done"
always:无论容器退出代码是什么,都会自动重启该容器,除了always,还可以设置为on-failure,这样只有当容器退出的代码为非0值得时候才会自动重启,如果是on-failure=5,最多重启5次

9.获取更多容器的信息(详细检查)
$ sudo docker inspect daemon_dave
也可以用-f或者--format标志来选定查看结果,如:
$ sudo docker inspect --format='{{ .State.Running }}' daemon_dave
结果:false( .State.Running 容器的运行状态)
.NetworkSettings.IPAdress----->容器IP地址

注意:该命令还能查看多个容器的信息

10.删除容器
$ sudo docker rm 容器ID
注意:运行中的容器室无法删除的,只能stop和skill掉后才能删除,当然也没有办法一次性删除所有的容器,但有个技巧可以:
docker rm 'docker ps -a -q' -a 所有容器 -q 返回容器ID

 


 

============使用docker镜像和仓库=============


1.列出镜像:
$ sudo docker images

2.拉取镜像
$ sudo docker pull 镜像
$ sudo docker run -t -i --name next_container ubuntu /bin/bash

3.查找镜像:
$ sudo docker search puppet(带有puppet的镜像)

4.构建镜像:
$ sudo docker commit(不推荐)
$ sudo docker build 或Dockerfile文件

5.创建一个容器后,安装Apache2
$ sudo docker run -i -t ubuntu /bin/bash
/# apt-get -yqq update
/# apt-get -y install apache2
启动了一个容器,在里面安装了apache,所以这个容器将作为一个web服务运行

 

posted @ 2018-10-26 14:21  MoonDayOne  阅读(137)  评论(0)    收藏  举报