Docker常用命令、服务器搭建、迁移备份
一、Docker常用命令
1、查看主机docker中的镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 0f3e07c0138f 2 months ago 220MB
2、从docker远程库中查找镜像
^C[root@localhost ~]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 12382 [OK]
3、从docker远程库中拉取镜像
[root@localhost ~]# docker pull nginx
4、启动运行容器
[root@localhost ~]# docker run -it 容器名/ID /bin/bash ///-it 分配一个伪终端
5、自定义容器名并启动
[root@localhost ~]# docker run -it --name 自建名 容器名/ID ///以centos7的命名进入centos
6、查看正在运行的容器
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
28abedfe4443 centos "/bin/bash" 20 hours ago Up About an hour centos7
7、查看所有(正在、停止)运行的容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
28abedfe4443 centos "/bin/bash" 20 hours ago Up About an hour centos7
8、查看上一次运行的容器
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
28abedfe4443 centos "/bin/bash" 20 hours ago Up About an hour centos7
9、退出容器
[root@28abedfe4443 ~]# exit ///直接退出容器
或者使用:Ctrl+Q -- Ctrl+P -- Ctrl+Q ///将容器挂载至后台,不退出
10、进入后台挂载容器
[root@localhost ~]# docker attach 容器名/ID
[root@localhost ~]# docker exec -it 容器名/ID /bin/bash
11、启动容器
[root@localhost ~]# docker start 容器名/ID
12、停止容器
[root@localhost ~]# docker stop 容器名/ID
13、重启容器
[root@localhost ~]# docker restart 容器名/ID
14、查看容器正在进行的进行
[root@localhost ~]# docker top 容器名/ID
UID PID PPID C STIME TTY TIME CMD
root 9332 9313 0 15:59 pts/0 00:00:00 /bin/bash
15、查看容器内部所有详情信息
[root@localhost ~]# docker inspect 容器名/ID
16、查看容器端口号
[root@localhost ~]# docker port 容器名/ID
17、修改容器名
[root@localhost ~]# docker rename 原名 改后名
18、主机与容器之间文件传输
[root@localhost ~]# docker cp centos7:/root/villian/abc.txt /root/zwl
将centos7容器中/root/villian/abc.txt文件拷贝至主机/root/zwl目录下
[root@localhost ~]# docker cp /root/zwl/zwl.txt centos7:/root/villian
将主机/root/zwl/zwl.txt文件拷贝至容器/root/zwl目录下
19、容器目录挂载主机
[root@localhost ~]# docker run -it --name 容器名/ID -v /挂载路径:/挂载到docker路径 容器名/ID
20、将容器导出主机中
[root@localhost ~]# docker export 容器名.tar 容器名
21、将容器从主机导入
[root@localhost ~]# cat centos.tar | docker import centos:v1
将快照文件导入镜像centos:vi
22、写一个循环脚本,防止后台运行容器停止
[root@localhost ~]# docker run --name 容器名 -d 容器名 /bin/sh -c "while true; do echo hello world; sleep 1; done"
23、以端口名映射主机端口方式登录容器
[root@localhost ~]# docker run -p 81:80 --name web -it ubuntu /bin/bash
docker run -p 容器端口:主机端口 --name 容器名 -it 容器名 /bin/bash
24、查看docker其他命令
[root@localhost ~]# docker --help
二、LANM服务器搭建
安装JDK环境:
1、在/opt/目录下创建software目录
[root@localhost ~]# mkdir -p /opt/software
2、下载jdk并解压,移动并重命名为jdk:
[root@localhost ~]# tar -zxvf jdk-8u171-linux-x64.tar.gz
[root@localhost ~]# mv jdk1.8.0_171/ /opt/software/jdk
3、配置环境变量:
[root@localhost ~]# vim ~/.bashrc
export JAVA_HOME=/opt/software/jdk
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
4、使配置生效:
[root@localhost ~]# source ~/.bashrc
5、验证是否配置成功:
[root@localhost ~]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode
安装tomcat
1、搜索tomcat镜像
[root@localhost ~]# docker search tomcat
2、拉取tomcat镜像
[root@localhost ~]# docker pull tomcat
3、根据镜像启动tomcat容器
[root@localhost ~]# docker run --name tomcat1 -d -p 8080:8080 tomcat
4、查看本地的容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b2e9025226f0 tomcat "catalina.sh run" 2 days ago Up 2 days 0.0.0.0:8080->8080/tcp tomcat1
5、测试tomcat动态界面
在浏览器中输入ip:映射端口,如 localhost:8080,出现下面页面则代表成功
扩展:通过映射不同端口,开启多个tomcat服务
[root@localhost ~]# docker run --name tomcat2 -d -p 8082:8082 tomcat
[root@localhost ~]# docker run --name tomcat3 -d -p 8083:8083 tomcat
[root@localhost ~]# docker run --name tomcat4 -d -p 8084:8084 tomcat
安装mysql数据库
1、搜索mysql镜像
[root@localhost ~]# docker search mysql
2、拉取mysql镜像
[root@localhost ~]# docker pull mysql
3、启动mysql容器,-e MYSQL_ROOT_PASSWORD
是必填项,用于指定root用户的密码
[root@localhost ~]# docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql
4、查看本地的容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d25a5947f7db mysql "docker-entrypoint..." 2 days ago Up 33 seconds 0.0.0.0:3306->3306/tcp mysql01
5、登录mysql
root@d25a5947f7db:/# mysql -uroot -p
Enter password:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>
安装nginx静态服务器
1、搜索nginx镜像
[root@localhost ~]# docker search nginx
2、拉取nginx镜像
[root@localhost ~]# docker pull nginx
3、使用nginx镜像启动nginx容器
[root@localhost ~]# docker run --name nginx -d -p 80:80 nginx
4、查看本地的容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bcd974e90360 nginx "nginx -g 'daemon ..." 2 days ago Up 44 hours 0.0.0.0:80->80/tcp nginx
5、测试访问Nginx静态界面
拓展:通过容器挂载主机目录静态文件,实现容器静态页面
1、通过挂载方式进入容器
[root@localhost ~]# docker run -it --name nginx -d -p 80:80 -v /home:/home nginx
2、修改容器中nginx.conf配置文件
root@d25a5947f7db:/# vim default.conf
server {
listen 80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
#root /usr/share/nginx/html;
root /home/userfile; #修改root根目录,使指向路径为/home/userfile
index index.html index.htm;
}
备注: nginx容器中配置了文件存放地址是/home/userfile ,我们把本地目录 /home 挂载到了容器的/home目录中,所以我们要把存放文件的文件夹 userfile 放在本地目录 /home 下面。
3、测试
文件目录的一张图片路径是这样的: /home/userfile/nginx.jpg
在浏览器中输入ip:映射端口,如 localhost:80/nginx.jpg,出现下面页面则代表成功
安装Apache服务器
1、搜索httpd镜像
[root@localhost ~]# docker search httpd
2、拉取httpd镜像
[root@localhost ~]# docker pull httpd
3、根据httpd镜像创建httpd容器
[root@localhost ~]# docker run --name httpd -d -p 80:80 httpd
4、查看本地的容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3d4d1836b984 httpd "httpd-foreground" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp httpd
5、测试httpd界面
在浏览器中输入ip:映射端口,如 localhost:80 ,出现下面页面则代表成功
三、容器迁移备份
1、容器保存为镜像
docker commit nginx mynginx
nginx是容器名称
mynginx是新的镜像名称
此镜像的内容就是你当前容器的内容,接下来你可以用此镜像再次运行新的容器
2、镜像备份
docker save -o mynginx.tar mynginx
-o 输出到的文件
mynginx.tar是nginx备份压缩包
执行后,运行ls命令即可看到打成的tar包
3、镜像恢复与迁移
docker load -i mynginx.tar
-i 输入的文件
mysnginx.tar为nginx备份压缩包
执行后再次查看镜像,可以看到镜像已经恢复