1.安装docker
更新yum
yum -y update
安装docker
yum install docker -y
docker生命周期常用命令
systemctl stop docker.service
systemctl start docker.service
systemctl restart docker.service
systemctl status docker.serviced
2.docker镜像管理
docker官方镜像官网
https://hub.docker.com/
查看所有本地镜像
docker images
搜索镜像
dokcer search xxx
删除镜像
镜像存在容器时无法删除
docker rmi xxx
镜像标记
通过tag可以对镜像进行标记
docker tag name1 name2
3.docker容器管理
运行镜像
docker run -dit --privileged -p21:21 -p80:80 -p8080:8080 -p30000-30010:30000-30010 --name how2jtmall how2j/tmall:latest /usr/sbin/init
-dit 是 -d -i -t 的缩写。 -d ,表示 detach,即在后台运行。 -i 表示提供交互接口,这样才可以通过 docker 和 跑起来的操作系统交互。 -t 表示提供一个 tty (伪终端),与 -i 配合就可以通过 ssh 工具连接到 这个容器里面去了
--privileged 启动容器的时候,把权限带进去。 这样才可以在容器里进行完整的操作
-p21:21 第一个21,表示在CentOS 上开放21端口。 第二个21 表示在容器里开放21端口。 这样当访问CentOS 的21端口的时候,就会间接地访问到容器里了
-p80:80 和 21一个道理
-p8080:8080 和21 一个道理,在本例里,访问的地址是 http://192.168.84.128:8080/tmall/, 这个 192.168.84.128 是CentOS 的ip地址,8080是 CentOS 的端口,但是通过-p8080:8080 这么一映射,就访问到容器里的8080端口上的 tomcat了
--name how2jtmall 给容器取了个名字,叫做 how2jtmall,方便后续管理
how2j/tmall:latest how2j/tmall就是镜像的名称, latest是版本号,即最新版本
/usr/sbin/init: 表示启动后运行的程序,即通过这个命令做初始化
docker run -itd --name mysql5.6 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql5.6
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
进入容器
docker exec -it mysql5.6 /bin/bash
生命周期
暂停:pause
恢复:unpause
停止:stop
开始:start
docker start xxx
查看运行的容器
docker ps -a
检查容器里的各项信息
docker inspect xxx
删除容器
运行中的容器无法删除,需要先stop
docker rm xxx