最近学习学习docker,记录一下。
我电脑的系统是ubuntu18.04TLS,
打开终端, 输入下面的命令,安装docker。
wget -qO- https://get.docker.com/ | sh
安装完成之后,可以输入下面的命令,查看是否安装成功。
docker version
sudo docker run -i -t --name sample ubuntu /bin/bash
解释一下这个命令:-t -l 两个命令行参数,-i标志保证容器中STDIN是开启的,-t告诉Docker为要创建的容器分配一个伪tty终端。这样新创建的容器才能提供一个交互式shell。如果我们要在命令下创建一个我们能与之进行交互的容器,而不是一个运行后台服务的容器,这两个参数是最基本的。
列出所有的docker容器
sudo docker ps -a
-a 表示列出所有的docker容器, -l表示列出最新的docker容器
容器命名
sudo docker run --name testDocker ubuntu
重新启动已经停止的容器
根据名字启动容器
sudo docker start testDocker
根据id启动容器
sudo docker start 5c9c5d637162
也可以用下面的命令重新启动容器
sudo docker restart testDocker
附着到容器上。
docker容器重新启动的时候,会沿用docker run命令时指定的参数来运行,因此重新启动后会运行一个交互式会话shell。
创建守护式容器。
长期运行的容器。没有交互式会话,非常适合运行应用程序和服务。
sudo docker run --name daemon_docker_container -d ubuntu /bin/sh -c "while true;do echo hell world; sleep 1;done"
查看容器的日志。
查看全部日志
sudo docker logs daemon_docker_container
可以加-f 查看实时日志
sudo docker logs -f daemon_docker_container
还可以加-t ,为每条日志加上时间戳。
sudo docker logs -ft daemon_docker_container
docker统计信息
docker1.5.0中引入的命令
sudo docker stats daemon_docker_container docker1 testDocker
在容器内部运行进程 exec
在docker1.3之后,通过docker exec命令在容器内部额外启动新进程。
sudo docker exec -d daemon_docker_container touch /etc/new_config_file
sudo docker
这里注意:
在容器内运行的进程有两种类型:后台任务和交互式任务。后台任务在容器内运行且没有交互需求,而交互式任务则保持在前台运行。
如果想在容器内部运行交互式任务,需要容器处于运行的状态。如果不是运行状态可以看下面的例子。
停止容器
sudo docker stop daemon_docker_container