这是我参与8月更文挑战的第15天,活动详情查看:8月更文挑战
接着前面两篇关于Docker的介绍和实践,本文主要讲一下docker容器和仓库。
Docker容器
Docker 容器与镜像之间的关系,就好像java里的类和其实例对象;一个类可以new很多个对象;一个镜像也可以run很多个容器
查看容器命令
[root@VM-0-17-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8f55fbd844e1 redis "docker-entrypoint.s…" 4 months ago Up 4 months 0.0.0.0:6379->6379/tcp redis_wd
08be69defcbd mysql:5.7 "docker-entrypoint.s…" 10 months ago Up 2 months 33060/tcp, 0.0.0.0:3309->3306/tcp mysql_57
使用最基础的run命令启动一个容器
[root@VM-0-17-centos ~]# docker run -itd --name ubuntu-test ubuntu:14.04
34fb1569ba05228a06254b972bd91e394017ba98a14fb3ecd910ed36bea6730e
参数说明:
-
-i: 交互式操作。
-
-t: 终端。
-
-d:后台运行
-
--name :给容器起个名字
-
ubuntu:14.04:对应的镜像
加了-d的参数,启动后默认就不会进入容器了。需要进入容器的话使用docker exec
[root@VM-0-17-centos ~]# docker exec -it 34fb1569ba05 /bin/bash
root@34fb1569ba05:/#
exit退出容器
停止运行容器
[root@VM-0-17-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34fb1569ba05 ubuntu:14.04 "/bin/bash" 10 minutes ago Up 10 minutes ubuntu-test
8f55fbd844e1 redis "docker-entrypoint.s…" 4 months ago Up 4 months 0.0.0.0:6379->6379/tcp redis_wd
08be69defcbd mysql:5.7 "docker-entrypoint.s…" 10 months ago Up 2 months 33060/tcp, 0.0.0.0:3309->3306/tcp mysql_57
[root@VM-0-17-centos ~]# docker stop 34fb1569ba05
34fb1569ba05
删除容器
删除容器使用 docker rm 命令:
[root@VM-0-17-centos ~]# docker rm 34fb1569ba05 //这一串数字是容器id
34fb1569ba05
仓库 Docker Hub
目前 Docker 官方维护了一个公共仓库 Docker Hub。
仓库登陆命令,需要用到你的账号和密码,
$ docker login
仓库退出命令
$ docker logout
拉取镜像,可以通过下面的命令搜索镜像,并执行 docker pull。
$ docker search ubuntu
$ docker pull ubuntu
这跟github就很类似了对不对,其实原理都差不多,都是仓库管理工具。 有拉就会有推,推的话就用push。
至此docker三部就讲完了,有写的不好的地方欢迎大家指出。