docker images
docker image ls
镜像
搜索镜像
[root@huangstts ~]# docker search centos7
获取镜像
查看镜像详细信息
[root@huangstts ~]# docker image inspect centos7:v1
[
{
"Id": "sha256:688353a31fdee02a966d1f83e9210f77b5a63baaaacbedb81ca35f6231cfeb6c",
"RepoTags": [
"10.0.122.119:5000/test/busybox:1.0",
"centos7:v1"
],
"RepoDigests": [
"10.0.122.119:5000/test/busybox@sha256:f5cbafe4bbcbd4127697a4bf6bdf9a27eccb51e3762d9dd1f68f74d2b24b8cb7"
],
"Parent": "",
"Comment": "",
"Created": "2016-12-19T08:19:13.520688711Z",
"Container": "456f8516cf09e51a6dd76df07268554ad67064f3b7c7d55ab8f87aa95b19304d",
"ContainerConfig": {
"Hostname": "1b0d6163fdc2",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/opt/ansible/ansible/bin:/bin:/usr/bin:/sbin:/usr/sbin",
"PYTHONPATH=/opt/ansible/ansible/lib",
"ANSIBLE_LIBRARY=/opt/ansible/ansible/library"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"ENV ANSIBLE_LIBRARY=/opt/ansible/ansible/library"
],
"ArgsEscaped": true,
"Image": "sha256:8e58dcc95243d50f7928983c340450ea197000d82fd5c978b508c6d7ca6d75bf",
"Volumes": null,
"WorkingDir": "/opt/ansible/ansible",
"Entrypoint": null,
"OnBuild": [],
"Labels": {
"build-date": "20161214",
"license": "GPLv2",
"name": "CentOS Base Image",
"vendor": "CentOS"
}
},
"DockerVersion": "1.12.3-cs3",
"Author": "Toshio Kuratomi ",
"Config": {
"Hostname": "1b0d6163fdc2",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/opt/ansible/ansible/bin:/bin:/usr/bin:/sbin:/usr/sbin",
"PYTHONPATH=/opt/ansible/ansible/lib",
"ANSIBLE_LIBRARY=/opt/ansible/ansible/library"
],
"Cmd": [
"/bin/bash"
],
"ArgsEscaped": true,
"Image": "sha256:8e58dcc95243d50f7928983c340450ea197000d82fd5c978b508c6d7ca6d75bf",
"Volumes": null,
"WorkingDir": "/opt/ansible/ansible",
"Entrypoint": null,
"OnBuild": [],
"Labels": {
"build-date": "20161214",
"license": "GPLv2",
"name": "CentOS Base Image",
"vendor": "CentOS"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 447168937,
"VirtualSize": 447168937,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/dcce8a7c834a47f1706b4c1f181489879f713f134ef9bf848b825d502e92b7cf/diff:/var/lib/docker/overlay2/1dce04be92af40687bd3b4f6ff989b26c7dffe537d1ebe73b2810629ce53b6ee/diff:/var/lib/docker/overlay2/98448e7f7fdf303c049206723e059878ed99c3f457be355ae3d48cb5635f32ab/diff:/var/lib/docker/overlay2/5588cc2a2717da596e7f3f9a610bacae27989eb90e81db55ef77fe43fa1ac8c0/diff:/var/lib/docker/overlay2/f00c1adac0351c0437ce006044f2bceb54f2571eba3b9e86e1764c47fc771dd8/diff",
"MergedDir": "/var/lib/docker/overlay2/e4327edbacf7118a37f6e7368752e5b7407ef542f241a2b51723ca14f27da9c4/merged",
"UpperDir": "/var/lib/docker/overlay2/e4327edbacf7118a37f6e7368752e5b7407ef542f241a2b51723ca14f27da9c4/diff",
"WorkDir": "/var/lib/docker/overlay2/e4327edbacf7118a37f6e7368752e5b7407ef542f241a2b51723ca14f27da9c4/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:34e7b85d83e48a22bd5dfa2b6b9ee9565b7ef672f09b3d2409c61635f9bca4db",
"sha256:0d1585b2947054ffb5fe18c9b3c1d2a5b54c31d1eb8fdcab86bdd660c02e960f",
"sha256:f8c414e271fb68df96edff745d9754049e3450543c8a0705e462c14ec036577b",
"sha256:7794e20d52b7e8ec23c1f5167c8557b0c681cd199b99a7baa9a8ecee53798a7e",
"sha256:596e51307fcb889cca100aff8669754308f6893514f0ce1a43a449a490a1dc81",
"sha256:cf4eb7184a66f0c60c3d94151b100d6a12ac115fb450ec27e636b9359b1064d6"
]
},
"Metadata": {
"LastTagTime": "2019-10-15T17:57:43.770777916+08:00"
}
}
]
导出镜像
容器打包成镜像
docker commit -m "description" -a "author_info" (容器id或者名称)“镜像的仓库名”
- -m 和-a 可以不写
删除镜像
docker rm 用来删除容器 加上 -i 选项就是删除镜像
导入镜像
docker image load -i docker-centos.tar.gz
容器
docker ps 列出当前在线的docker容器
docker ps -a 列出所有docker容器
启动docker
docker run -it 镜像名 /bin/bash(启动程序)
创建并运行一个docker容器
docker run -d --name node4 centos7-sshd /init.sh
运行一个已经被创建过的docker容器
docker exec -it node3 /bin/bash
查看容器详细信息
停止容器
docker stop 容器名称/id
或
docker container kill 容器名称/id
进入一个已启动的容器
必须先start才能进入
docker exec -it 容器名/id /bin/bash
————————————————————————————————————————————
传统虚拟机与docker
将真实机8000端口和docker的nginx的80端口做映射
访问真实机8000端口,可以看到虚拟机配置的页面
1043 docker run -d -p 8000:80 -v /data:/usr/share/nginx/html nginx:latest
1044 docker ps -a
1045 curl 10.0.122.119:8000
Docker 创建卷后挂载
通过Dockerfile文件生成新镜像
Dockerfile是一个定义了镜像创建步骤的文件,Docker引擎通过build命令读取Dockerfile,按定义的步骤来一步步构造镜像。在研发和实施环境中,通过Dockerfile 创建容器是主流做法。下面是一个Dockerfile的例子:
FROM ubuntu/14.04 # 基础镜像
MAINTAINER guest # 制作者签名
RUN apt-get install openssh-server -y # 安装ssh服务
RUN mkdir /var/run/sshd # 创建目录
RUN useradd -s /bin/bash -m -d /home/guest guest # 创建用户
RUN echo ‘guest:123456’| chpasswd # 修改用户密码
ENV RUNNABLE_USER_DIR /home/guest # 设置环境变量
EXPOSE 22 # 容器内默认开启的端口
CMD ["/usr/sbin/sshd -D"] # 启动容器时自动启动ssh服务
一个容器只有一个CMD---id为1的进程
dockerfile
脚本方式构建!!!
手动太low
在centos7:v1镜像的基础上,加入nginx,并保存成一个新的镜像nginx:v1
[root@huangstts 下载]# docker load -i centos7-v1.tar.gz
34e7b85d83e4: Loading layer 199.9MB/199.9MB
0d1585b29470: Loading layer 171.6MB/171.6MB
f8c414e271fb: Loading layer 2.048kB/2.048kB
7794e20d52b7: Loading layer 3.072kB/3.072kB
596e51307fcb: Loading layer 2.048kB/2.048kB
cf4eb7184a66: Loading layer 91.05MB/91.05MB
Loaded image: centos7:v1
[root@huangstts 下载]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7-sshd latest 7ab3d38571fc 4 days ago 676MB
centos latest 0f3e07c0138f 13 days ago 220MB
nginx latest f949e7d76d63 2 weeks ago 126MB
mysql/mysql-server 5.7 d1469951af27 2 months ago 262MB
centos7 v1 688353a31fde 2 years ago 447MB
centos7 latest 4cbe7aa905e7 5 years ago 382MB
centos:v1 已经成功加到image中
编写
[root@huangstts nginx]# cat Dockerfile
# This my first nginx Dockerfile
# Version 1.0
# Base images 基础镜像
FROM centos7:v1
#MAINTAINER 维护者信息
MAINTAINER luoyinsheng
#ENV 设置环境变量
ENV PATH /usr/local/nginx/sbin:$PATH
#ADD 文件放在当前目录下,拷过去会自动解压
ADD nginx-1.16.1.tar.gz /usr/local/
#RUN 执行以下命令
RUN yum -y install epel-release.noarch
RUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre && yum clean all
RUN useradd -s /sbin/nologin -M www
#WORKDIR 相当于cd
WORKDIR /usr/local/nginx-1.16.1
RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make install
#EXPOSE 映射端口
EXPOSE 80
#CMD 运行以下命令
CMD ["nginx","-g","daemon off;"]
[root@huangstts nginx]# ls
Dockerfile nginx-1.16.1.tar.gz
在当前文件夹执行
[root@huangstts nginx]# docker build -t nginx:v1 .
成功
[root@huangstts nginx]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx v1 505ea3cbb3b4 4 minutes ago 729MB
centos7-sshd latest 7ab3d38571fc 4 days ago 676MB
centos latest 0f3e07c0138f 13 days ago 220MB
nginx latest f949e7d76d63 2 weeks ago 126MB
mysql/mysql-server 5.7 d1469951af27 2 months ago 262MB
centos7 v1 688353a31fde 2 years ago 447MB
centos7 latest 4cbe7aa905e7 5 years ago 382MB
############################################################################################################################
[root@huangstts nginx]# docker run -d -p 9090:80 --name test nginx:v1
6faba8283d5b3abaa52706e88891f83e4f71512099fafbcbfb222fafaa18eb6c
[root@huangstts nginx]# curl 10.0.122.119:9090
Welcome to nginx!
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.
For online documentation and support please refer to
nginx.org.
Commercial support is available at
nginx.com.
Thank you for using nginx.
file模块
user模块
group模块
yum模块
copy模块做yum源
模版模块