Docker 学习笔记3 容器使用



一、 docker客户端

​docker​​​命令可以查看所有命令参数。
​​​docker command --help​​查看详细用法。

二、运行一个web应用

1. 拉取运行镜像

sudo docker pull training/webapp
sudo docker run -d -P training/webapp python app.py

其中:

  • -d 后台运行
  • -P 将容器内网络端口映射到主机上
  • –name 指定容器名称

这时可以通过网址来打开网站。
​​​ http://主机ip:32768/​

可以通过-p来指定主机端口:

sudo docker run -d -p 5000:5000 training/webapp python app.py

Docker 学习笔记3 容器使用_centos

2. 查看网络端口

sudo docker port 容器id

3. 查看web应用程序日志

sudo docker logs -f 容器id

Docker 学习笔记3 容器使用_centos_02

可以通过​​docker top 容器id​​查看容器内部运行的进程。

4. 检查web应用程序

​sudo docker inspect 容器id​​用来查看docker的底层信息。

5. 重启容器

​sudo docker restart 容器id​

6. 移除容器(容器停止时操作)

​sudo docker rm 容器id​

三、docker镜像使用

1. 列表本地主机的镜像:

sudo docker images

admin1@cade-ubuntu:/etc/docker$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest fce289e99eb9 5 months ago 1.84kB
ubuntu 15.10 9b9cb95443b5 2 years ago 137MB
training/webapp latest 6fae60ef3446 4 years ago 349MB

2. 获取一个新的镜像

docker pull ubuntu:13.10

如果不指定tag,则是默认下载:latest镜像。

3. 查找使用镜像

sudo docker search httpd
sudo docker pull httpd

4. 创建镜像

有两种方式创建我们自己的镜像:

  1. 从已经创建的容器中更新镜像,并且提交这个镜像
  2. 使用Dockerfile指令来创建一个新的镜像

5. 更新镜像

sudo docker run -t -i ubuntu:15.10 /bin/bash

root@81afe8a0db1b:/# apt-get update
root@81afe8a0db1b:/# exit

sudo docker commit -m="last update" -a="cade" 81afe8a0db1b cade/ubuntu:15.10v2
admin1@cade-ubuntu:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
cade/ubuntu 15.10v2 26196c4612a6 21 seconds ago 137MB
hello-world latest fce289e99eb9 5 months ago 1.84kB
ubuntu 15.10 9b9cb95443b5 2 years ago 137MB
training/webapp latest 6fae60ef3446 4 years ago 349MB

使用新镜像来启动一个容器:

admin1@cade-ubuntu:~$ sudo docker run -t -i cade/ubuntu:15.10v2 /bin/bash
root@64e1a394ff7f:/#

6. 构建镜像

使用​​docker build​​来从零开始创建一个新的镜像,为此,需要先创建一个Dockerfile文件,其中包含一组指令来告诉Docker如何构建我们的镜像。

FROM    centos:6.7
MAINTAINER Fisher "fisher@sudops.com"

RUN /bin/echo 'root:123456' |chpasswd
RUN useradd cade
RUN /bin/echo 'cade:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D

参数说明:

  • -t :指定要创建的目标镜像名
  • . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
admin1@cade-ubuntu:~/docker$ sudo docker build -t cade/centos:6.7 .
Successfully built bc736b253093
Successfully tagged cade/centos:6.7
admin1@cade-ubuntu:~/docker$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
cade/centos 6.7 bc736b253093 32 seconds ago 191MB
cade/ubuntu 15.10v2 26196c4612a6 11 minutes ago 137MB
centos 6.7 9f1de3c6ad53 3 months ago 191MB
hello-world latest fce289e99eb9 5 months ago 1.84kB
ubuntu 15.10 9b9cb95443b5 2 years ago 137MB
training/webapp latest 6fae60ef3446 4 years ago 349MB

7. 设置镜像标签

admin1@cade-ubuntu:~/docker$ sudo docker tag bc736b253093 cade/centos:dev
admin1@cade-ubuntu:~/docker$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
cade/centos 6.7 bc736b253093 57 seconds ago 191MB
cade/centos dev bc736b253093 57 seconds ago 191MB
cade/ubuntu 15.10v2 26196c4612a6 12 minutes ago 137MB
centos 6.7 9f1de3c6ad53 3 months ago 191MB
hello-world latest fce289e99eb9 5 months ago 1.84kB
ubuntu 15.10 9b9cb95443b5 2 years ago 137MB
training/webapp latest 6fae60ef3446 4 years ago 349MB

四、导入与导出

1. 导出和导入镜像

导出镜像

镜像的保存

docker images
docker save 2eb5a120304e > tomcat-save.tar
ls -lh

导入容器

把容器变成新的镜像

docker load < tomcat-save.tar 
docker images

2. 导出和导入容器

导出容器

docker ps
docker export 6ee7f02c6ec2 > tomcat-container.tar

导入容器快照

cat docker/tomcat-container.tar | docker import - test/tomcat:v1
docker images
docker tag imageid tomcat:export
docker images
# 从某个网址或url导入
# docker import http://example.com/exampleimage.tgz example/imagerepo

本文学习资源来源:https://www.runoob.com/docker/docker-image-usage.html