-
常用命令
状态查看 systemctl status docker 列出镜像列表 docker images 运行容器 docker run -t -i ubuntu:15.10 /bin/bash 停止容器 docker stop <container id> 运行某容器 docker start <container id> 获取镜像 docker pull ubuntu:13.10 Docker Hub搜索镜像 docker search httpd 拖取镜像 docker pull httpd 删除镜像 docker rmi hello-world 设置镜像标签 docker tag <container id> daxiang/centos:dev 进入容器命令行 docker exec -it <container name> bash 查看容器的DNS是否生效 sudo docker run -it --rm ubuntu cat etc/resolv.conf 容器设置DNS sudo docker run -it --rm -h host_ubuntu --dns=114.114.114.114 --dns-search=test.com ubuntu 运行容器例:docker run -dti --name elasticsearch -e "discovery.type=single-node" -p 9200:9200 --net mylocalnet elasticsearch:7.12.1 容器外执行命令:docker exec --user root 容器ID yum install net-tools -y docker创建数据库 docker run --name mysql-nkb -p 13306:3306 -v /Users/xxx/data/mysql/conf:/etc/mysql/conf.d -v /Users/xxx/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
-
Dockerfile文件示例
## Dockerfile FROM centos:6.7 MAINTAINER Fisher "fisher@sudops.com" RUN /bin/echo 'root:123456' |chpasswd RUN useradd daxiang1 Run /bin/echo 'daxiang1:123456' |chpasswd RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local EXPOSE 22 EXPOSE 80 CMD /usr/sbin/sshd -D
启动命令
sudo docker run -t -i daxiang1/cnetos:6.7 /bin/bash
-
安装Docker Machine
安装 base=https://github.com/docker/machine/releases/download/v0.16.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo mv /tmp/docker-machine /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine 查看是否成功 docker-machine version 列出机器 docker-machine ls
-
安装docker
由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本: sudo apt-get remove docker docker-engine docker-ce docker.io 更新apt包索引: sudo apt-get update 安装以下包以使apt可以通过HTTPS使用存储库(repository): apt-get install -y apt-transport-https ca-certificates curl software-properties-common 添加Docker官方的GPG密钥: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 使用下面的命令来设置stable存储库: sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 再更新一下apt包索引: sudo apt-get update 安装最新版本的Docker CE: sudo apt-get install -y docker-ce 在生产系统上,可能会需要应该安装一个特定版本的Docker CE,而不是总是使用最新版本: 列出可用的版本: apt-cache madison docker-ce 指定安装: sudo apt-get install docker-ce=
-
安装docker-compose
切换超级权限 sudo -i 安装 curl -L https://github.com/docker/compose/releases/download/1.27.4/run.sh > /usr/local/bin/docker-compose 加执行权限 chmod +x /usr/local/bin/docker-compose 卸载:sudo rm /usr/local/bin/docker-compose
-
docker创建子网内多台服务器
#查看网络列表 docker network ls #创建固定IP的子网 docker network create --subnet=172.18.0.0/16 netgroup #创建固定IP容器 #cluster-master docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-master -h cluster-master --net netgroup --ip 172.18.0.2 daocloud.io/library/centos /usr/sbin/init #cluster-slaves docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave1 -h cluster-slave1 --net netgroup --ip 172.18.0.3 daocloud.io/library/centos /usr/sbin/init docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave2 -h cluster-slave2 --net netgroup --ip 172.18.0.4 daocloud.io/library/centos /usr/sbin/init docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave3 -h cluster-slave3 --net netgroup --ip 172.18.0.5 daocloud.io/library/centos /usr/sbin/init #例如 创建mongo docker run -dti --name mongo -h mongo -p 27017:27017 --net netgroup --ip 172.18.0.27 daocloud.io/library/mongo --auth docker create -p 9876:9876 --name rmqserver -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" -e "JAVA_OPTS=-Duser.home=/opt" -v D:\dockerData\rmqserver\logs:/opt/logs -v D:\dockerData\rmqserver\store:/opt/store --net netgroup --ip 172.18.0.98 foxiswho/rocketmq:server-4.7.0 docker create -p 10911:10911 -p 10909:10909 --name rmqbroker -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" -v D:\dockerData\rmqbroker\conf\broker.conf:/etc/rocketmq/broker.conf -v D:\dockerData\rmqbroker\logs:/opt/logs -v D:\dockerData\rmqbroker\store:/opt/store --net netgroup --ip 172.18.0.109 foxiswho/rocketmq:broker-4.7.0 #换源 yum -y install wget mv /etc/yum.repos.d/CentOS-Linux-BaseOS.repo /etc/yum.repos.d/CentOS-Linux-BaseOS.repo.backup20210125 wget -O /etc/yum.repos.d/CentOS-Linux-BaseOS.repo http://mirrors.aliyun.com/repo/Centos-8.repo yum makecache #安装openssh yum -y install openssh openssh-server openssh-clients systemctl start sshd #cluster-master需要修改配置文件(特殊) ####ssh自动接受新的公钥 ####master设置ssh登录自动添加kown_hosts vi /etc/ssh/ssh_config 将原来的StrictHostKeyChecking ask 设置StrictHostKeyChecking为no 保存 systemctl restart sshd # (分别对slaves换源和安装openssh) # 安装passwd软件 yum install passwd -y #执行passwd命令,修改root用户密码 #cluster-master公钥分发 ssh-keygen -t rsa (一路回车) cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys ssh root@cluster-slave1 'mkdir ~/.ssh' scp ~/.ssh/authorized_keys root@cluster-slave1:~/.ssh ssh root@cluster-slave2 'mkdir ~/.ssh' scp ~/.ssh/authorized_keys root@cluster-slave2:~/.ssh ssh root@cluster-slave3 'mkdir ~/.ssh' scp ~/.ssh/authorized_keys root@cluster-slave3:~/.ssh #ansible安装 yum -y install epel-release yum -y install ansible vi /etc/ansible/hosts [cluster] cluster-master cluster-slave1 cluster-slave2 cluster-slave3 [master] cluster-master [slaves] cluster-slave1 cluster-slave2 cluster-slave3 #配置docker容器hosts #由于/etc/hosts文件在容器启动时被重写,直接修改内容在容器重启后不能保留,为了让容器在重启之后获取集群hosts,使用了一种启动容器后重写hosts的方法。 #需要在~/.bashrc中追加以下指令 :>/etc/hosts cat >>/etc/hosts<<EOF 127.0.0.1 localhost 172.18.0.2 cluster-master 172.18.0.3 cluster-slave1 172.18.0.4 cluster-slave2 172.18.0.5 cluster-slave3 EOF source ~/.bashrc #用ansible分发.bashrc至集群slave下 ansible cluster -m copy -a "src=~/.bashrc dest=~/"
docker操作
于 2020-11-10 14:18:07 首次发布