1.创建容器
1.创建未运行的docker容器
[root@localhost ~]# docker create -it docker.io/ubuntu:16.04
eb46bf95bcb8bc1d3ad6ab5d66ea8307892634976530eb44f1304218fa1e2058
启动docker容器
[root@localhost ~]# docker start eb46bf95bcb8
eb46bf95bcb8
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eb46bf95bcb8 docker.io/ubuntu:16.04 "/bin/bash" 2 minutes ago Up 2 seconds amazing_euclid
2.新建并启动容器
运行脚本之后,容器终止
[root@localhost ~]# docker run docker.io/ubuntu:16.04 /bin/echo 'hello world'
hello world
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7599ffc4c0d4 docker.io/ubuntu:16.04 "/bin/echo 'hello ..." 7 seconds ago Exited (0) 6 seconds ago pensive_morse
eb46bf95bcb8 docker.io/ubuntu:16.04 "/bin/bash" 4 minutes ago Up 2 minutes amazing_euclid
涉及到的操作有
1)检查本地是否有存在的指定的镜像,如果没有则从公有仓库中拉取
2)利用镜像创建并启动一个容器
3)分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
4)从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中(所以需要主机网管冲突之类的问题)
5)执行用户指定的应用程序
6)执行完毕后容器被终止
2.终止容器运行
[root@localhost ~]# docker stop 828bb9e8bae6
828bb9e8bae6
3.查看所有容器信息
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3e1866de1b95 docker.io/ubuntu:16.04 "/bin/bash" 3 minutes ago Exited (0) 2 minutes ago friendly_curie
4.进入docker容器
attcah命令
[root@localhost ~]# docker run -idt docker.io/ubuntu:16.04
420363ba20404168da9280827759d14abd472d71622ef17ee2dbd83beb92fe59
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
420363ba2040 docker.io/ubuntu:16.04 "/bin/bash" 5 seconds ago Up 4 seconds dazzling_bardeen
命令不方便
2.exec命令
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
420363ba2040 docker.io/ubuntu:16.04 "/bin/bash" 3 minutes ago Up 3 minutes dazzling_bardeen
[root@localhost ~]# docker exec -it 420363ba2040 /bin/bash
5.删除容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d45a5aa6ff1a docker.io/ubuntu:16.04 "/bin/bash" 9 minutes ago Up 9 minutes heuristic_snyder
420363ba2040 docker.io/ubuntu:16.04 "/bin/bash" 46 minutes ago Up 46 minutes dazzling_bardeen
[root@localhost ~]# docker rm -f d45a5aa6ff1a
d45a5aa6ff1a
[root@localhost ~]# docker rm -f 420363ba2040
420363ba2040
6.容器的导入的导出
导出容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9eaf6a8fe592 docker.io/ubuntu:16.04 "/bin/bash" 23 seconds ago Exited (0) 23 seconds ago eager_nightingale
3e1866de1b95 docker.io/ubuntu:16.04 "/bin/bash" 57 minutes ago Exited (0) 56 minutes ago friendly_curie
[root@localhost ~]# docker export 9eaf6a8fe592 >test_for_run.tar
容器导出称为镜像
[root@localhost ~]# ls
anaconda-ks.cfg test_for_run.tar ubuntu_14.04.tar
[root@localhost ~]# cat test_for_run.tar | docker import - test/ubuntu:16.04
sha256:078b3bd6397c5ae6e8fb47bbd08e00cdad27facb76460485116bfa1068b4e625
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test/ubuntu 16.04 078b3bd6397c 7 seconds ago 85.9 MB
docker.io/ubuntu 16.04 dfeff22e96ae 6 days ago 131 MB