docker 常用命令
docker 常用命令
运行一个系统容器
[root@localhost ~]# docker run -i -t ubuntu /bin/bash 或者 docker run -i -t centos /bin/bash
docker run --name centos2 -d -i -t centos /bin/bash
-t:在新容器内指定一个伪终端或终端。
-i:允许你对容器内的标准输入 (STDIN) 进行交互。
-d 后台运行
我们可以通过运行exit命令或者使用CTRL+D来退出容器 (实际已经关闭了容器)
重新启动容器命令
[root@localhost ~]# docker start 79131c881994
进入容器的命令
[root@localhost ~]# docker attach 79131c881994
查看容器是否开始状态的命令
docker ps -la
获取容器里面的详细状态,Ip,文件路径之类的。
[root@localhost ~]# docker inspect 79131c881994
网卡启动
#!/bin/bash
docker_pid=$(docker inspect --format "{{.State.Pid}}" $1)
nsenter -t $docker_pid -u -i -n -p
启动系统网卡
systemctl restart network
systemctl restart docker
docker start ID
在登录到里面
docker_pid=$(docker inspect --format "{{.State.Pid}}" $1)
nsenter -t $docker_pid -u -i -n -p
4.docker 网络与共享存储
挂载目录
docker run -it -v /opt:/opt centos3
[root@localhost ~]# docker run -d --name nfs -v /data centos
173985c71820a84cee36339a0b537564786f45a6ccda421affcf51a2b65ae64f
启动一个nfs 容器, 指定 data 的目录存储
[root@localhost ~]# docker run -it --name test1 --volumes-from nfs centos
启动test1 的容器, 指定使用nfs 的目录存储
[root@localhost _data]# docker inspect 173985c71820
查看nfs 容器的存储位置
[root@localhost opt]# cd /var/lib/docker/volumes/0f905260eef82b60a6bc454fc169ec44be3327f0e2c10c07fe7a0ade5720931d/_data
到存储下面
[root@localhost _data]# touch hehe
创建hehe的文件
[root@7e48720e446f /]# ls /data
返回到 test1 下面查看 共享目录是不是有呵呵文件。
[root@7e48720e446f data]# ls
hehe
手动构建容器
克隆镜像
[root@localhost ~]# docker commit -m "my nginx" 9eff4c42bb04 oldboyedu/nginx:v1
sha256:9ddf01c0751d628f4ca36022252424b9eb669e0cee7bf8f1f112604074a4a488
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
oldboyedu/nginx v1 9ddf01c0751d 7 seconds ago 109 MB
<none> <none> 6af84cf48d2e 12 days ago 451 MB
<none> <none> 99961d10496d 12 days ago 127 MB
<none> <none> 3d90cb4e59e4 13 days ago 191 MB
在用刚才的克隆的镜像去启动一个容器
docker run -d --name nginxv1 oldboyedu/nginx:v1
####################
修改nginx.conf 配置文件
docker commit -m "my nginx" 51910d0348ea oldboyedu/nginx:v2
克隆一个nginx:v1的镜像
docker run -d -p 82:80 --name nginxv2 oldboyedu/nginx:v2
启动一个nginx 镜像。
编写Dockerfile 文件
[root@localhost nginx]# cat Dockerfile
# This docker file
# version 1
# Author: lixiang zou
FROM centos
#Maintainer
#Commands
RUN rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
RUN yum install -y nginx
#ADD index.html /usr/share/nginx/html/index.html
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
EXPOSE 80
CMD
启动这个构建的镜像
启动一个容器
[root@localhost nginx]# docker run -d -p 83:80 --name nginxv3 oldoyedu/nginx:v3 nginx
创建私有仓库
docker run -d -p 5000:5000 registry
docker tag oldoyedu/nginx:v3 192.168.10.49:5000/oldoyedu/nginx:latest 打标签
docker push 192.168.10.49:5000/oldoyedu/nginx:latest 上传到私有库里面
docker push 192.168.10.49:5000/oldoyedu/nginx 下载私有库里面的 nginx
docker 资源隔离
dockerUI 管理工具
运行并下载ui镜像
docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker
docker ps -a
访问
http://192.168.10.49:9000
docker下部署nginx
运行容器
docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/logs:/wwwlogs -d nginx
启动nginx
docker run -d -P nginx
指定映射端口和名字
docker run -d -p 443:443 -p 82:80 --name nginxv2 nginx
部署php
下载docker hub 下载php
docker pull php:5.6-fpm
运行容器
docker run -p 9000:9000 --name myphp-fpm -v ~/nginx/www:/www -v $PWD/conf:/usr/local/etc/php -v $PWD/logs:/phplogs -d php:5.6-fpm
启动nginx
docker run -p 9000:9000 --name myphp-fpm -v
部署 mysql
docker pull mysql:5.6
运行容器
docker run -p 3306:3306 --name mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
docker run -p 3306:3306 --name mymysql -v mysql:5.6
docker run --name mysql-slave3 -d -P hub.c.163.com/nce2/mysql:5.
启动mysql
docker run -d -p 3307:3307 --name mysqlv1 -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
mysql -h192.168.10.49 -p3306 -uroot -p
docker run -it --link some-mysql:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
docker run -it --link some-mysql:mymysql --rm c55addbd5a6e sh -c 'exec mysql -h"192.168.10.49" -P"3306" -uroot -p"123456"'
docker run -it --link some-mysql:mysqlv1 --rm c55addbd5a6e sh -c 'exec mysql -h"192.168.10.49" -P"3307" -uroot -p"123456"'