1.查看版本:

docker version

2.镜像:

docker pull centos:6.7  拉取镜像

docker search centos 搜索名称包含centos的镜像

docker images   查看所有镜像

docker stats   显示容器消耗系统资源情况

docker rmi myCentos 删除镜像

docker rmi ${docker image -aq}

docker run it imageId /bin/bash

exit 退出 退出后容器不再运行

ctrl + p + q 仅仅退出

3.运行:

docker run -itd -p 8080:80  --name myCentos centos:6.7 /bin/bash

在镜像里面退出  exit

4.查看所有容器状态:

docker ps -a 查看所有容器

docker ps 查看所有运行中的容器

5.启动/关闭一个容器:

docker start/stop  myCentos

docker rm myCentos    必须关闭状态下 删除容器

docker rm -f myCentos 强制关闭

docker restart  myCentos 重新启动

docker container prune  清除所有关闭状态的容器

docker run -d imageId

6.进入容器:

docker attach myCentos (退出时候,会关闭容器)

docker exec -it myCentos /bin/bash

7.导出和导入容器:

docker export myCentos > myCentos.rar

 cat myCentos.rar | docker import - [xiayu.com/centos:sunliqian](http://xiayu.com/centos:sunliqian)

8.端口查看方式:


docker port myCentos

docker logs查看容器日志 

9.查看容器内的进程:

docker top myCentos

10.查看容器底层信息:

docker inspect myCentos

11.查看最后一次创建的容器:

docker ps -l

12.安装docker

yum search docker

uname -r     内核版本大于3.10

修改yum源:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

wget -o [http://mirrors.163.com/.help/CentOS7-Base-163.repo](http://mirrors.163.com/.help/CentOS7-Base-163.repo)

yum makecache

yum -y update

 yum install docker

13.创建镜像:
a.通过更新容器,让后commit成一个新的镜像
b.通过Dockerfile文件来创建镜像

docker exec -it myUbuntu:sunliqian /bin/bash

apt-get update 

docker commit -m "description" -a "sunliqian" myUbuntu [xiayu.com/ubuntu:v2](http://xiayu.com/ubuntu:v2)

编写Dockerfile文件 ,指令前缀大写

FROM   centos:6.7

MAINTAINER    FISHER "sunliqian.@Sudops.com"

RUN /bin/echo "root:123456" | chpasswd

RUN useradd runoob

EXPOSE 22

EXPOSE 80

CMD /usr/sbin/sshd -D

然后执行  docker  build -t [xiayu.com/centos:sunliqian](http://xiayu.com/centos:sunliqian)  /docker/images/  (/docker/images代表Dockerfile的路径)

14.设置镜像标签

docker tag 417c06850bd0 [xiayu.com/ubuntu:sunliqian2](http://xiayu.com/ubuntu:sunliqian2)  为一个镜像设置一个新标签

15.端口映射:

-P 容器内部端口随机映射到主机的端口  (P大写)
-p 容器端口与主机端口进行绑定     
   -p  5001:5000    5001代表宿主机的端口

 docker port myTrainingWebapp 5000

16.创建一个新的网络

docker network create -d bridge test-network 
bridge代表网络类型       
网络类型有bridge、overlay

overlay用于swarm mode中

17.docker信息

docker info

docker command --help

docker cp 3533429dw:/home/a.txt a.txt 从容器中拷贝a.txt文件到宿主机

18.日志

docker logs

19.docker安装Nginx

docker search nginx
docker pull nginx
docker run -d -p 8888:80 --name myNginx nginx
docker exec -it myNginx /bin/bash

21.docker安装Tomcat

docker search tomcat
docker pull tomcat 
docker run -d -p 8880:8080 --name myTomcat tomcat
修改webapps.dist为webapps即可

23.安装portainer,portainer是docker的web管理工具

docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

24.docker数据卷

使用-v进行映射
docker run -it -v /home/centos:/home --privileged=true --name myCentos centos /bin/bash
  
  -v volumes_name:/home:ro 具名挂载(推荐使用)
  -v /home/centos:/home:rw 匿名挂载
  docker volume ls
  docker volume inspect volumes_name
  ro: readonly
  re: readwrite

25.dockerfile

文件名Dockerfile

内容  
---------------------
FROM centos

VOLUME ["volume01","volume02"]
CMD echo "========end========="
CMD /bin/bash
#注释
---------------------

dockerfile中常见的命令
---------------------
FROM  #基于什么创建的镜像
MAINTAINER #编写者
RUN   #构建镜像执行的命令
ADD   #步骤,添加内容
WORKDIR  #工作目录
VOLUMES  #挂载目录
EXPOSE   #暴露端口配置
CMD      #指定容器运行时候,运行的命令,只有最后一个会生效,如果在运行中指定命令,会替换CMD中的命令
ENTRYPOINT #指定容器启动时候运行的命令,与CMD不同的是,如果在运行中指定命令,会追加命令
ONBUILD  #当构建一个被继承的dockerfile时候,会触发该命令
COPY     #复制,将文件拷贝到镜像中
ENV      #构建时候的环境变量
---------------------

docker build -f Dockerfile -t xiayu.com/centos:1.0 .

dockerfile用来构建镜像

docker build 
docker run
docker publish

Dockerfile demo

FROM centos:latest #基础镜像
MAINTAINER sunliqian@163.com #维护者信息

COPY readme.txt /usr/local/readme.txt #readme信息

ADD apache-tomcat-9.0.35.tar.gz /usr/local #tomcat安装包 add自动解压
ADD jdk1.8.0_131.tar.gz /usr/local #jdk安装包 自动解压

RUN yum -y install vim #在构建镜像时候,安装vim
ENV MYPATH /usr/local #定义shell环境变量
WORKDIR $MYPATH #指定工作目录

#定义环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_131 
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.35
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.35
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080  #暴露端口

CMD /usr/local/apache-tomcat-9.0.35/bin/startup.sh #当容器启动的时候,执行命令

构建镜像

docker build -f Dockerfile-centos-jdk-tomcat -t xiayu.com/jdktomcatcentos:1.0 .

创建容器

docker run -it -p 8988:8080 --name myJdkTomcatCentos xiayu.com/jdktomcatcentos:1.0 /bin/bash

26.数据卷容器,多个容器可以实现数据卷共享

volumes-from 

docker run -it --name mySelfCentos02 --volumes-from mySelfCentos xiayu.com/centos:1.0 /bin/bash

你若安好便是晴天
82 声望10 粉丝