这里建议在CentOS7.x以上的版本
(1)yum 包更新到最新
sudo yum update
(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3)设置yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4)安装docker
sudo yum install docker-ce
(5)安装后查看docker版本
docker -v
ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。
vi /etc/docker/daemon.json
在该文件中输入如下内容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
Docker的启动与停止
安装后查看docker版本
docker -v
启动docker:
systemctl start docker
停止docker:
systemctl stop docker
重启docker:
systemctl restart docker
查看docker状态:
systemctl status docker
开机启动:
systemctl enable docker
查看docker概要信息
docker info
查看镜像
docker images
REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
如果你需要从网络中查找需要的镜像,可以通过以下命令搜索
拉取镜像就是从中央仓库中下载镜像到本地
docker pull 镜像名称
docker pull centos:7
删除镜像
docker rmi 镜像ID
删除所有镜像
docker rmi `docker images -q`
查看正在运行的容器
docker ps
查看所有容器
docker ps –a
查看最后一次运行的容器
docker ps –l
查看停止的容器
docker ps -f status=exited
停止容器:
docker stop 容器名称(或者容器ID)
启动容器:
docker start 容器名称(或者容器ID)
容器启动:
容器交互式启动:
(1)交互式方式创建容器docker run -it --name=容器名称 镜像名称:标签 /bin/bash
docker run -it --name=inter_centos centos:7 /bin/bash
exit
docker rm 容器名称(容器ID)
(2)守护式方式创建容器:
docker run -di --name=容器名称 镜像名称:标签
docker run -di --name=guard_centos centos:7
登录守护式容器方式:
docker exec -it 容器名称 (或者容器ID) /bin/bash
docker exec -it guard_centos /bin/bash
停止容器:
docker stop 容器名称(或者容器ID)
docker stop 82e98fbb5a34
启动容器:
docker start 容器名称(或者容器ID)
docker start 82e98fbb5a34
删除指定的容器:
docker rm 容器名称(容器ID)
如果我们需要将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
docker cp /etc/docker guard_centos:/etc/docker
也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
docker cp guard_centos:/etc/docker/aa.json ~
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。
创建容器 添加-v参数 后边为 宿主机目录:容器目录,例如:
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos01 centos:7
如果你共享的是多级的目录,可能会出现权限不足的提示。
这是因为CentOS7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题
查看容器IP地址
我们可以通过以下命令查看容器运行的各种数据
docker inspect 容器名称(容器ID)
docker inspect mycentos01
也可以直接执行下面的命令直接输出IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
docker inspect --format ='{{.NetworkSettings.IPAddress}}' mycentos01
查看网络id
docker inspect --format ='{{.NetworkSettings.Networks.bridge.NetworkID}}' mycentos01
(1)拉取mysql镜像
docker pull centos/mysql-57-centos7
(2)创建容器
docker run -di --name=docker_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登陆密码
(3)远程登录mysql
连接宿主机的IP ,指定端口为33306
(1)拉取镜像
docker pull tomcat:7-jre7
(2)创建容器
创建容器 -p表示地址映射
docker run -di --name=mytomcat -p 9000:8080
-v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
将war文件拷贝到 宿主机的目录 /usr/local/webapps
http://192.168.25.129:9000/cas/index.jsp
(1)拉取镜像
docker pull nginx
docker run -di --name=mynginx -p 80:80 nginx
docker exec -it mynginx /bin/bash
cat /etc/nginx/nginx.conf
(查看到 include /etc/nginx/conf.d/*.conf; 查看到nginx的配置文件地址)
cd /etc/nginx/conf.d/
查看到nginx的default.conf 文件,查看静态文件存放地址
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
将实现准备好静态文件 修改为 html
docker cp html mynginx:/usr/share/nginx
http://192.168.25.129:80/ (宿主机ip)
(1)拉取镜像
docker pull redis
(2)创建容器
docker run -di --name=myredis -p 6379:6379 redis
redis-cli -h 192.168.184
容器保存为镜像
我们可以通过以下命令将容器保存为镜像
docker commit mynginx mynginx_i
镜像备份
我们可以通过以下命令将镜像保存为tar 文件
docker save -o mynginx.tar mynginx_i
镜像恢复与迁移
首先我们先删除掉mynginx_img镜像 然后执行此命令进行恢复
docker load -i mynginx.tar
-i 输入的文件
执行后再次查看镜像,可以看到镜像已经恢复
1、首先在建一个target目录,将需要上传jar上传至target目录。创建Dockerfile文件,内容如下:
FROM openjdk:8-jdk-alpine
ADD database-project-0.0.1-SNAPSHOT.war app.jar
EXPOSE 8080
CMD ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"] —设置r容器的启动命令
2、cd到项目根目录下,也就是Dockerfile的平级目录下执行如下命令进行打包镜像:
docker build -t test:v0.1 .
3、直接在本地运行刚才打包好的镜像,创建一个容器并启动:
前台启动
docker run -p 8080:8080 --name test test:v0.1
后台启动
docker run -d -p 8080:8080 --name test test:v0.1
docker stop 01c35b8f7c86
docker rm 01c35b8f7c86