Docker容器的安装和使用

安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
或国内:curl -sSL https://get.daocloud.io/docker | sh

安装 Docker Engine-Community

sudo yum install docker-ce docker-ce-cli containerd.io

启动 Docker

sudo systemctl start docker

通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 

sudo docker run hello-world

卸载 docker

yum remove docker-ce
rm -rf /var/lib/docker

Docker的使用

runoob@runoob:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
Hello world

运行交互式的容器

通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:

runoob@runoob:~$ docker run -i -t ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#
exit 退出

获取镜像

docker pull ubuntu

启动容器

docker run -it ubuntu /bin/bash

查看全部容器

docker ps -a

使用 docker start 启动一个已停止的容器:

docker start 2f75c7156a73

后台运行

docker run -itd --name ubuntu-test ubuntu /bin/bash

停止一个运行容器

docker stop <容器 ID>

进入容器

docker attach <容器 ID>

退出容器,不停止容器

docker exec bd499d2341e4 /bin/bash

导出和导入容器

导出: docker export 1e560fca3906 > ubuntu.tar
导入容器快照:cat docker/ubuntu.tar | docker import - test/ubuntu:v1
通过指定 URL 或者某个目录来导入:docker import http://example.com/exampleimage.tgz example/imagerepo

删除容器

docker rm -f <容器 ID>

运行一个 web 应用

runoob@runoob:~# docker pull training/webapp  # 载入镜像
runoob@runoob:~# docker run -d -P training/webapp python app.py
  • -d:让容器在后台运行。

  • -P:将容器内部使用的网络端口随机映射到我们使用的主机上。

查看 WEB 应用容器

runoob@runoob:~#  docker ps
CONTAINER ID IMAGE COMMAND ... PORTS
d3d5e39ed9d3 training/webapp "python app.py" ... 0.0.0.0:4999->5000/tcp

查看ip:4999可以看到

我们也可以通过 -p 参数来设置不一样的端口: 

runoob@runoob:~$ docker run -d -p 5000:5000 training/webapp python app.py

docker ps查看正在运行的容器

runoob@runoob:~#  docker ps
CONTAINER ID IMAGE PORTS NAMES
bf08b7f2cd89 training/webapp ... 0.0.0.0:5000->5000/tcp wizardly_chandrasekhar
d3d5e39ed9d3 training/webapp ... 0.0.0.0:4999->5000/tcp xenodochial_hoov

查看 WEB 应用程序日志

runoob@runoob:~$ docker logs -f id
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

停止 WEB 应用容器

runoob@runoob:~$ docker stop <容器id>
wizardly_chandrasekhar

移除WEB应用容器

runoob@runoob:~$ docker rm <容器id>
wizardly_chandrasekhar
 

最新文章

  1. 数组内部对象排序(sort)
  2. cellspacing,cellpadding什么区别
  3. COM技术の接口
  4. VC++添加工具栏
  5. Oracle:ORA-01791: 不是 SELECTed 表达式
  6. [转]从数据库中导出用友U8的现存量数据到Excel表
  7. C++四种强制类型转换详解
  8. Android源码浅析(三)——Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机
  9. 推荐使用@Resource,不推荐使用@Autowired
  10. github个人心得
  11. Nginx GZIP 压缩
  12. [django]drf知识点梳理-分页
  13. 3.9 C++多继承
  14. java常用设计模式四:观察者模式
  15. 在Ubuntu 14.04 64bit上安装Markdown和绘图软件Haroopad
  16. AsyncTask的前世今生
  17. Js 运行机制 event loop
  18. C语言 知识点总结完美版
  19. 如何编写 Typescript 声明文件
  20. linux下的文本操作之 文本查找——grep

热门文章

  1. 三、MyCat主要配置介绍
  2. Spring 支持的事务管理类型?
  3. 为什么HTTP/3要基于UDP?可靠吗?
  4. getch()函数的使用方法及其返回值问题
  5. s函数中积分程序更改
  6. 数字电路的多路复用(MUX)
  7. 手撕spring核心源码,彻底搞懂spring流程
  8. [转]Fabric2.3中使用test-network搭建测试网络
  9. Spring配置文件-Bean实例化的三种方式
  10. redis集群在线迁移第一篇(数据在线迁移至新集群)实战一