删除镜像

1、停止根据该镜像创建的容器

2、删除根据该镜像创建的容器

3、删除该镜像

后台启动容器

#命令 docker run -d 镜像名
[root@aliyun /]# docker run -d centos

#问题 docker ps 发现cnetos停止了
#docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止

查看容器中进程信息ps

#命令 docker top 容器id
[root@aliyun ~]# docker top fc161a86d6f6

查看镜像的元数据

#命令 docker inspect 容器id
[root@aliyun ~]# docker inspect fc161a86d6f6

进入当前正在运行的容器

#方法1 
#命令 docker exec -it 容器id bashshell	进入容器后开启一个新的终端,可以在里面操作(常用)
[root@aliyun ~]# docker exec -it fc161a86d6f6 /bin/bash
[root@fc161a86d6f6 /]# ps
  PID TTY          TIME CMD
   27 pts/1    00:00:00 bash
   40 pts/1    00:00:00 ps
[root@fc161a86d6f6 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

#方法2
#命令 docker attach 容器id	进入容器正在执行的终端,不会启用新的进程
[root@aliyun /]# docker attach fc161a86d6f6

从容器内拷贝文件到主机

#命令 docker cp 容器id:容器内路径 目的的主机路径
[root@aliyun home]# docker cp fc161a86d6f6:/home/test.java /home/

安装Nginx

#搜索镜像 search
#下载镜像 pull
[root@aliyun ~]# docker search nginx
[root@aliyun ~]# docker pull nginx
[root@aliyun ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              4bb46517cac3        2 weeks ago         133MB

#-d 后台运行
#--name 给容器命名
#-p 宿主机端口:容器内部端口
[root@aliyun ~]# docker run -d --name nginx01 -p 3344:80 nginx
a8ad30ed4106de005d0963506d7289f58c6000353093bd2c8ba3d876b5fbde4f
[root@aliyun ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
a8ad30ed4106        nginx               "/docker-entrypoint.…"   19 seconds ago      Up 19 seconds       0.0.0.0:3344->80/tcp   nginx01

#测试访问
[root@aliyun ~]# curl localhost:3344

#进入容器
[root@aliyun ~]#  docker exec -it nginx01 /bin/bash
root@a8ad30ed4106:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@a8ad30ed4106:/# cd etc/nginx/
root@a8ad30ed4106:/etc/nginx# ls
conf.d	fastcgi_params	koi-utf  koi-win  mime.types  modules  nginx.conf  scgi_params	uwsgi_params  win-utf

安装Tomcat

#官方测试使用,用完即删除
docker run -it --rm tomcat:9.0

#运行tomcat
[root@aliyun ~]# docker run -it -p 8080:8080 tomcat

#进入tomcat
[root@aliyun ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
d23db2b55fdb        tomcat              "catalina.sh run"   33 seconds ago      Up 32 seconds       0.0.0.0:8080->8080/tcp   gifted_darwin
[root@aliyun ~]# docker exec -it d23db2b55fdb /bin/bash

#将webapps.dist下的所有文件复制到webapps目录下
root@d23db2b55fdb:/usr/local/tomcat# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE	NOTICE	README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps.dist  work
root@d23db2b55fdb:/usr/local/tomcat# cp -r webapps.dist/* webapps
root@d23db2b55fdb:/usr/local/tomcat# cd webapps
root@d23db2b55fdb:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager
root@d23db2b55fdb:/usr/local/tomcat/webapps#  exit
exit

#将操作过的容器通过commit命令提交为一个新的镜像,以后可以使用修改过的镜像
[root@aliyun ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
d23db2b55fdb        tomcat              "catalina.sh run"   7 minutes ago       Up 7 minutes        0.0.0.0:8080->8080/tcp   gifted_darwin

#-a 作者
#-m 信息
[root@aliyun ~]# docker commit -a="zhangjingwen" -m="add webapps app" d23db2b55fdb tomcat02:1.0
sha256:7daa9abc8af79bcc9435d536fc09cf1294adeb567b3d9284554246b147c896ae
[root@aliyun ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat02            1.0                 7daa9abc8af7        7 seconds ago       652MB
tomcat              latest              2ae23eb477aa        3 weeks ago         647MB

容器数据卷

方式一:直接使用命令来挂载,双向绑定

docker run -it -v 主机目录:容器内目录

#测试 将容器内home目录下的文件挂在到主机内home/ceshi目录下
[root@aliyun /]# docker run -it -v /home/ceshi:/home/ centos /bin/bash

#查看元数据,可查看挂载情况
[root@aliyun ceshi]# docker inspect 5c4967175e92

wtXthR.png

安装MySQl

#运行容器需要做数据挂载,启动mysql需要配置密码
#-e 环境配置 MYSQL_ROOT_PASSWORD设置root的密码
[root@aliyun ~]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql