docker安装与使用

阿里云Ubuntu 14.04/16.04 (使用apt-get进行安装)

安装:

sudo apt-get update

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

sudo apt-get -y update

sudo apt-get -y install docker-ce

将用户加入到docker组中,才能有权限操作docker

usermod -G docker userName #将用户userName加入到docker组中

重新登录userName,并执行groups查看用户所属的组

获取镜像

docker search ubuntu  #查询云端镜像

docker pull ubuntu:14.04  #拉取云端镜像

 

运行:

docker run ubuntu:14.04 /bin/echo "Hello world" 如果报错,可能是操作系统内核版本过低,uname -r 查看:4.4.0-93-generic没有问题

在docker中bash运行,执行操作

#########创建容器#############
docker run -i -t ubuntu:14.04 /bin/bash
docker run -it ubuntu:14.04 env LANG=C.UTF-8 bash #可输入中文

#命名容器为CNAME,挂载本地盘到容器中,并将宿主机的8080端口映射到容器端口8000(uwsgi监听接口),且后台运行这样在exit时不会关闭
docker run -it -d --name CNAME -v /home/dev/www/:/root/www/ -p 8080:8000 ubuntu:14.04 bash 

docker run -it --name NEWNAME ubuntu:14.04 bash  #定义容器名称 --name NAME

############重命名容器################
docker rename OLDNAME NEWNAME #重命名容器的名称第一个参数是旧名称(或者容器ID)第二个为新名称

############退出容器###################
方式1:
Ctrl+P+Q
正常退出且不关闭容器,先按住Ctrl,再按住p,最后按Q
方式2:
exit
如果容器在创建时没有指定后台运行(-d 参数)则退出时容器会停止运行,如果容器在创建时有参数-d,则在执行此命令时,一般不会结束

############进入容器#########################
方式一:
docker exec -it 44fc  bash #缺点,每次要输入参数-it及命令bash
方式2:
docker attach 44fc  #缺点:1.当有多个终端同时使用此方式时,所有终端的页面会同步所有操作和显示 2.如果执行exit,则容器会停止运行

装机基础操作

安装python2.7
sudo apt-get update
sudo apt-get install python2.7
sudo apt-get install python-dev
sudo apt-get install python-pip

安装vim
sudo apt-get install vim-gtk

配置pip阿里云资源
vim ~/.pip/pip.conf
添加如下
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
 
[install]
trusted-host=mirrors.aliyun.com


查看镜像: docker images
查看镜像id: docker images -q
删除镜像:

docker rmi image_id
常见错误如下:
Error response from daemon: conflict: unable to delete 7698f282e528 (must be forced) - image is being used by stopped container 372ef2a3a00a
容器虽停止运行但仍然存在,先执行
docker rm 372ef2a3a00a #先删除容器
docker rmi 7698f282e528 #然后再删除镜像


删除所有镜像: docker rmi $(docker images -q)
创建容器: docker run --name <container_name> centos:7,container_name是自己定义的容器名
查看所有容器: docker ps -a
查看运行容器: docker ps
查看容器id: docker ps -q
进入容器:

docker exec -it <container_id> bash
docker exec -it CONTAINER env LANG=C.UTF-8 /bin/bash #可输入中文


退出容器: exit
删除容器: docker rm <container_id>
删除所有容器: docker rm $(docker ps -aq)

端口映射: docker run -d -p 8080:80 hub.c.163.com/library/nginx,说明:-d 表示后台运行,-p 8080:80 表示将宿主机的8080端口映射到容器端口80。容器开放的端口在镜像说明里面会有,nginx开放80,mysql开放3306,一般本来他们监听什么端口,容器就开放什么端口。
启动/停止/重启容器:

docker start/stop/restart <container_id> #运行,停止,重启容器


获取容器/镜像的元数据: docker inspect <container_id>
挂载数据卷: docker run -it -v /root/hdata/:/root/ddata/ ubuntu:14.04 bash
说明:多个容器可以挂载一个目录。 -v参数开始挂载,冒号前为主机目录,冒号后为容器中的目录,ubuntu:14.04为镜像
此目录中数据在主机和多个容器中共用。


更新镜像
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
各个参数说明:
-m:提交的描述信息
-a:指定镜像作者
e218edb10161:容器ID
runoob/ubuntu:v2:指定要创建的目标镜像名

创建镜像
在一个目下创建 Dockerfile
内容如下
FROM ubuntu:14.04
MAINTAINER Fisher '1@1.com'
RUN touch /root/123.txt
执行docker build -t ubuntu:my .
-t :指定要创建的目标镜像名
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
 

设置镜像标签
docker tag 860c279d2fec ubuntu:ok
docker tag 镜像ID,这里是 860c279d2fec ,用户名称、镜像源名(repository name)和新的标签名(tag)。
如果对原镜像执行commit操作,此时相当于创建新镜像,标签的镜像不会随之改变。

访问主机数据库

在主机运行ifconfig,可看到虚拟的网卡docker0,主机地址为172.17.0.1

在容器中运行ifconfig,可查看容器的地址,一般是往后排如:172.17.0.2, 172.17.0.3,此地址可用于容器间通信

给主机mysql的用户和数据赋远程登录的权限
GRANT ALL PRIVILEGES ON databaseNAME.* TO 'userName'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
flush privileges;

访问主机rabbitMq

vim /etc/rabbitmq/rabbitmq.config #主机增加如下配置,可以远程访问
[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["username"]}]}
].

#django中配置
BROKER_URL = 'amqp://username:password@172.17.0.1:5672/myvhost'
#如果docekr以root运行需要在主app/celery.py中配置
from celery import platforms
platforms.C_FORCE_ROOT = True

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值